程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 外鍵的相關約束中級聯刪除的方案

Oracle 外鍵的相關約束中級聯刪除的方案

編輯:Oracle數據庫基礎

SQL和 Oracle 外鍵的相關約束中的級聯刪除。我們在相關的系統中如果你要刪除相關記錄,我們就要關聯一起刪除N多張表,同時它們之間還存在著相互約束的關系.所以考慮到在創建表時加上約束關系。

詳細內容如下:

SQL的Oracle外鍵約束可以實現級聯刪除與級聯更新;Oracle 則只充許級聯刪除。

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

  1. CREATE TABLE A001(ID INT PRIMARY KEY,NAME VARCHAR(20))  
  2. CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE ON UPDATE CASCADE,AGE TINYINT) 

Oracle 級聯刪除使用格式:

  1. CREATE TABLE A001(ID INT PRIMAY KEY,NAME VARCHAR2(20))  
  2. CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE,AGE NUMBER(2,0))  
  3. CREATE TABLE groups  
  4. (  
  5. id VARCHAR2(16) CONSTRAINT pk_groupid PRIMARY KEY,  
  6. name VARCHAR2(32),  
  7. description VARCHAR2(50)  
  8. )  
  9. TABLESPACE userspace;  
  10. CREATE TABLE usringrp  
  11. (  
  12. group_id VARCHAR2(16) CONSTRAINT fk_uing_grpid  
  13. REFERENCES groups(id)  
  14. ON DELETE CASCADE,  
  15. user_id VARCHAR2(16)  
  16. )  
  17. TABLESPACE userspace;  
  18. PowerDesigner  

參照完整性約束

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

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

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

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

注意:在Oracle 中建立好的constraint (包括primay key,foreign key) 如果要修改,必須先alter table drop contraint con_name;然後再重新add constraint
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved