Oracle的外鍵用來限制子表中參考的字段的值
在SQL
限制Restrict
置為默認值Set to default
級聯Cascade
不做操作No action
Oracle明確支持的方式包括No action
簡單看一下Oracle的默認處理方式No action
SQL> CREATE TABLE T_P (ID NUMBER
表已創建
SQL> ALTER TABLE T_P ADD PRIMARY KEY (ID);
表已更改
SQL> CREATE TABLE T_C (ID NUMBER
表已創建
SQL> ALTER TABLE T_C ADD CONSTRAINT FK_T_C
表已更改
SQL> INSERT INTO T_P VALUES (
已創建
SQL> INSERT INTO T_P VALUES (
已創建
SQL> INSERT INTO T_C VALUES (
已創建
SQL> COMMIT;
提交完成
對於No Action操作而言
SQL> DELETE T_P WHERE ID =
DELETE T_P WHERE ID =
*第
ORA
SQL> UPDATE T_P SET ID =
UPDATE T_P SET ID =
*第
ORA
SQL> DELETE T_P WHERE ID =
已刪除
不過No Action又和Restrict操作有所區別
這也使得No Action操作支持延遲約束
SQL> ALTER TABLE T_C DROP CONSTRAINT FK_T_C;
表已更改
SQL> ALTER TABLE T_C ADD CONSTRAINT FK_T_C
表已更改
SQL> SELECT * FROM T_P;
ID NAME
SQL> SELECT * FROM T_C;
ID FID NAME
SQL> DELETE T_P WHERE ID =
已刪除
SQL> INSERT INTO T_P VALUES (
已創建
SQL> COMMIT;
提交完成
From:http://tw.wingwit.com/Article/program/Oracle/201311/17487.html