oracle外來鍵約束資料刪除

2021-06-27 00:57:33 字數 933 閱讀 4350

今天同事讓我刪除乙個表的資料,痛快的答應說好;

看起來挺簡單的乙個任務,做起來可棘手,原來這個表是外來鍵約束的,作為乙個主表存在!!

可是,我剛剛接觸這個系統,可是難死我了

之後查了一下資料確認可以通過約束名來查詢到相應的表禁用約束,這才解決了

下面是我做的實驗過程:

首先建兩張表:

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;

刪除成功》

oracle外來鍵約束

新建父表 sql create table teacher 2 3 id number primary key,4 name varchar2 10 5 table created.新建子表 sql 1 create table student 2 3 id number primary key,4...

Oracle 外來鍵約束

新增主鍵約束 alter table ga airline add constraint pk airline id primary key airline id 有三種形式的外來鍵約束 1 普通外來鍵約束 如果存在子表引用父表主鍵,則無法刪除父表記錄 alter table t invoice d...

Oracle 外來鍵約束

下面的語句建立department 20表,並定義和啟用department id列上的外來鍵,該外來鍵引用departments表的department id列上的主鍵 create table dept 20 employee id number 4 last name varchar2 10 ...