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;


刪除成功》》》》》》》》》》》》》》》》》》》》》》》》》》》


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