熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

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

2013-11-13 15:58:40  來源: Oracle 

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

  詳細內容如下:

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

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

  CREATE TABLE A(ID INT PRIMARY KEYNAME VARCHAR())

  CREATE TABLE A(ID INT REFERENCES A(ID)ON DELETE CASCADE ON UPDATE CASCADEAGE TINYINT)

  Oracle 級聯刪除使用格式

  CREATE TABLE A(ID INT PRIMAY KEYNAME VARCHAR))

  CREATE TABLE A(ID INT REFERENCES A(ID)ON DELETE CASCADEAGE NUMBER())

  CREATE TABLE groups

  (

  id VARCHAR() CONSTRAINT pk_groupid PRIMARY KEY

  name VARCHAR()

  description VARCHAR()

  )

  TABLESPACE userspace;

  CREATE TABLE usringrp

  (

  group_id VARCHAR() CONSTRAINT fk_uing_grpid

  REFERENCES groups(id)

  ON DELETE CASCADE

  user_id VARCHAR()

  )

  TABLESPACE userspace;

  PowerDesigner

  參照完整性約束

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

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

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

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

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


From:http://tw.wingwit.com/Article/program/Oracle/201311/17613.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.