解说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)

)

TABLESPACE userspace;

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

PowerDesigner

参照完备性束厄窄小

限定(Restrict)。不允许举办改削或删除操纵。若改削或删除主表的主键时,如果子表中存在子记实,细碎将孕育产生一个错误提醒。这是缺省的参照完备性设置。

置空(Set Null)。如果外键列允许为空,若改削或删除主表的主键时,把子表中参照的外键列设置为空值(NULL)。

置为缺省(Set Default)。如果指定了缺省值,若改削或删除主表的主键时,把子表中参照的外键设置为缺省值(Default)。

级联(Cascade)。把主表中主键改削为一个新的值时,照应改削子表中外键的值;大概删除主表中主键的记实时,要照应删除子表中外键的记实




版权声明: 原创作品,允许转载,转载时请务必以超链接方式标明文章 原始因由 、作者信息和本声明。否则将究查法律责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1973863.html