oracle外來鍵約束
外來鍵約束的定義是,讓另一張表的記錄來約束自己。這裡的另一張表就是主表。
當主表的記錄刪除時,我們可以跟隨主表刪除記錄(on delete cascade)、或者相應字段設定為空(on delete set null)、或者不允許刪除(預設)。
a) 注意一:當主表被級聯刪除(dorp tabel wen cascade constraints)時,從表建立的與主表關聯的外來鍵約束將被刪除,從表資料不會發生變化。
假設從表為另乙個表外來鍵約束對應的主表,該外來鍵約束關係不會受到影響。
b) 注意二:從表外來鍵約束指向的主表字段,必須是唯一性約束或主鍵約束的字段。
因為,當外來鍵約束指向的主表記錄有重複項時,刪除其中之一時,從表伴隨操作不明朗。
建立表時建立外來鍵語法:
primary[ˈpraɪməri] 主要的、關鍵
foreign[ˈfɒrən] 外來鍵
references[ˈrefrəns]
constraint [kənˈstreɪnt]:約束、限制、強制
create table wen
(my char(10) not null,
love char(8) not null,
primary key (my),
constraint wen_fk foreign key (my,love)
references guoguo(my,love) on delete cascade --當主表記錄刪除時,從表記錄伴隨刪除
)on delete set null;
當主表記錄刪除時,設定從表資料為null,注意,從表字段必須允許為null
不寫on語句時,預設不允許刪除主表記錄。
修改表時追加外來鍵:
alter table wen
add constraint wen_fk foreign key(my,love) references guoguo(my,love) on delete cascade
alter table guoguo add constraint guoguo_fk foreign key(my,love) references
wen(my,love) on delete set null
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 ...