今天同事让我删除一个表的数据,痛快的答应说好;
看起来挺简单的一个任务,做起来可棘手,原来这个表是外键约束的,作为一个主表存在!!
可是,我刚刚接触这个系统,可是难死我了
之后查了一下资料确认可以通过约束名来查询到相应的表禁用约束,这才解决了
下面是我做的实验过程:
首先建两张表:
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;
删除成功》》》》》》》》》》》》》》》》》》》》》》》》》》》