作者: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)。把主表中主鍵修正為一個新的值時,呼應修正子表中外鍵的值;或許删除主表中主鍵的紀錄時,要呼應删除子表中外鍵的紀錄
版權聲明:
原創作品,答應轉載,轉載時請務必以超連結形式标明文章 原始來由 、作者資訊和本聲明。否則将追究功令責任。