1. 程式人生 > >oracle-------約束

oracle-------約束

非空約束:不能為空,設定為:

not null


唯一約束:列不能有重複的內容:

CONSTRAINT uk_列名 UNIQUE (列名)


主鍵約束:既不能重複,也不能為空:

CONSTRAINT pk_列名 PRIMARY KEY (列名)



當設定了複合主鍵之後,只有兩個欄位的內容都相同的時候才表示重複,才表示違反了約束。


主鍵約束=非空約束+唯一約束。


主外來鍵約束:

CONSTRAINT fk_列名 FOREIGN KEY(列名) REFERENCES 父表(列名)


刪除表操作問題:

1,如果要刪除父表的資料,首先要刪除對應的所有子表資料。



級聯操作一:級聯刪除,on delete casecade,當主表資料刪除之後,子表的資料也應該被及時清理。

先清除之前建立的表格,子-主,然後重新建立表格,主外來鍵語句後面需要加入:

CONSTRAINT fk_列名 FOREIGN KEY(列名) REFERENCES 父表(列名) on delete casecade


級聯操作二:級聯更新,on delete set null

當主表資料被刪除後,對應子表資料的相應欄位的內容設定為null。


級聯操作看需求來進行選擇操作。


2,刪除父表之前,先刪除子表。


混亂情況可以強制性刪除:

drop table 表名 casecade constraint;

強制刪除不建議使用,注意建立表的時候,腳步的執行順序。