天天看點

講解SQL與Oracle外鍵束厄狹窄中的級聯删除

 作者:Byron,這篇文章次要介紹了SQL與Oracle外鍵束厄狹窄中的級聯删除,更多内容

   作者:Byron

這篇文章次要介紹了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)

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

PowerDesigner

參照通通性束厄狹窄

限制(Restrict)。不理睬停止修正或删除操作。若修正或删除主表的主鍵時,假設子表中存在子紀錄,零碎将孕育發作一個錯誤提醒。這是預設的參照通通性設定。

置空(Set Null)。假設外鍵列答應為空,若修正或删除主表的主鍵時,把子表中參照的外鍵列設定為空值(NULL)。

置為預設(Set Default)。假設指定了預設值,若修正或删除主表的主鍵時,把子表中參照的外鍵設定為預設值(Default)。

級聯(Cascade)。把主表中主鍵修正為一個新的值時,呼應修正子表中外鍵的值;或許删除主表中主鍵的紀錄時,要呼應删除子表中外鍵的紀錄

版權聲明:

原創作品,答應轉載,轉載時請務必以超連結形式标明文章 原始來由 、作者資訊和本聲明。否則将追究功令責任。

繼續閱讀