| 導購 | 订阅 | 在线投稿
分享
 
 
 

講解SQL與Oracle外鍵約束中的級聯刪除

來源:互聯網  2008-06-01 06:45:45  評論

這篇論壇文章(賽迪網技術社區)主要介紹了SQL與Oracle外鍵約束中的級聯刪除,更多內容請參考下文:

最近軟件系統中要刪除一條記錄,就要關聯到同時刪除好多張表,它們之間還存在著約束關系.所以考慮到在創建表時加上約束關系,詳細內容如下:

SQL的外鍵約束可以實現級聯刪除與級聯更新;

ORACLE則只充許級聯刪除。

SQL級聯刪除與級聯更新使用格式:

CREATE TABLE A001(ID INT PRIMARY KEY,NAME VARCHAR(20))

CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE ON UPDATE CASCADE,AGE TINYINT)

ORACLE級聯刪除使用格式:

CREATE TABLE A001(ID INT PRIMAY KEY,NAME VARCHAR2(20))

CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE,AGE NUMBER(2,0))

--------------

CREATE TABLE groups

(

id VARCHAR2(16) CONSTRAINT pk_groupid PRIMARY KEY,

name VARCHAR2(32),

description VARCHAR2(50)

)

TABLESPACE userspace;

CREATE TABLE usringrp

(

group_id VARCHAR2(16) CONSTRAINT fk_uing_grpid

REFERENCES groups(id)

ON DELETE CASCADE,

user_id VARCHAR2(16)

)

TABLESPACE userspace;

---------------

PowerDesigner

參照完整性約束

限制(Restrict)。不允許進行修改或刪除操作。若修改或刪除主表的主鍵時,如果子表中存在子記錄,系統將産生一個錯誤提示。這是缺省的參照完整性設置。

置空(Set Null)。如果外鍵列允許爲空,若修改或刪除主表的主鍵時,把子表中參照的外鍵列設置爲空值(NULL)。

置爲缺省(Set Default)。如果指定了缺省值,若修改或刪除主表的主鍵時,把子表中參照的外鍵設置爲缺省值(Default)。

級聯(Cascade)。把主表中主鍵修改爲一個新的值時,相應修改子表中外鍵的值;或者刪除主表中主鍵的記錄時,要相應刪除子表中外鍵的記錄。

這篇論壇文章(賽迪網技術社區)主要介紹了SQL與Oracle外鍵約束中的級聯刪除,更多內容請參考下文: 最近軟件系統中要刪除一條記錄,就要關聯到同時刪除好多張表,它們之間還存在著約束關系.所以考慮到在創建表時加上約束關系,詳細內容如下: SQL的外鍵約束可以實現級聯刪除與級聯更新; ORACLE則只充許級聯刪除。 SQL級聯刪除與級聯更新使用格式: CREATE TABLE A001(ID INT PRIMARY KEY,NAME VARCHAR(20)) CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE ON UPDATE CASCADE,AGE TINYINT) ORACLE級聯刪除使用格式: CREATE TABLE A001(ID INT PRIMAY KEY,NAME VARCHAR2(20)) CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE,AGE NUMBER(2,0)) -------------- CREATE TABLE groups ( id VARCHAR2(16) CONSTRAINT pk_groupid PRIMARY KEY, name VARCHAR2(32), description VARCHAR2(50) ) TABLESPACE userspace; CREATE TABLE usringrp ( group_id VARCHAR2(16) CONSTRAINT fk_uing_grpid REFERENCES groups(id) ON DELETE CASCADE, user_id VARCHAR2(16) ) TABLESPACE userspace; --------------- PowerDesigner 參照完整性約束 限制(Restrict)。不允許進行修改或刪除操作。若修改或刪除主表的主鍵時,如果子表中存在子記錄,系統將産生一個錯誤提示。這是缺省的參照完整性設置。 置空(Set Null)。如果外鍵列允許爲空,若修改或刪除主表的主鍵時,把子表中參照的外鍵列設置爲空值(NULL)。 置爲缺省(Set Default)。如果指定了缺省值,若修改或刪除主表的主鍵時,把子表中參照的外鍵設置爲缺省值(Default)。 級聯(Cascade)。把主表中主鍵修改爲一個新的值時,相應修改子表中外鍵的值;或者刪除主表中主鍵的記錄時,要相應刪除子表中外鍵的記錄。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有