oracle外键约束数据删除

  今天同事让我删除一个表的数据,痛快的答应说好;

  看起来挺简单的一个任务,做起来可棘手,原来这个表是外键约束的,作为一个主表存在!!

  可是,我刚刚接触这个系统,可是难死我了


之后查了一下资料确认可以通过约束名来查询到相应的表禁用约束,这才解决了


下面是我做的实验过程:


首先建两张表:

create table t_group (id int not null,name varchar(30),primary key (id));

create table t_user (id int not null,name varchar(30),groupid int,primary key (id),foreign key (groupid) references t_group(id) );


插入数据:

insert into t_group values (1, 'Group1'); 
insert into t_group values (2, 'Group2');  

insert into t_user values (1, 'qianxin', 1);
insert into t_user values (2, 'yiyu', 2);

尝试删除t_group的数据报错!!如图一


根据约束名通过dba_constraints查询从表

select constraint_name, constraint_type, table_name from dba_constraints where constraint_name=upper('sys_c005376');


下面禁用约束

alter table t_user disable constraint sys_c005376;

再次尝试删除数据

delete from t_group;


删除成功》》》》》》》》》》》》》》》》》》》》》》》》》》》


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章