今天同事讓我刪除一個表的數據,痛快的答應說好;
看起來挺簡單的一個任務,做起來可棘手,原來這個表是外鍵約束的,作爲一個主表存在!!
可是,我剛剛接觸這個系統,可是難死我了
之後查了一下資料確認可以通過約束名來查詢到相應的表禁用約束,這才解決了
下面是我做的實驗過程:
首先建兩張表:
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;
刪除成功》》》》》》》》》》》》》》》》》》》》》》》》》》》