DB2外键删除规则的特殊约束(DB2 FOREIGN KEY ON DELETE RULES special constraints)

本文总结了DB2中删除规则的若干限制条件,包括自引用情况下的规则选择、跨表删除传播规则以及多连接依赖关系的规定等。此外还介绍了默认删除规则如何由特殊注册表CURRENTRULES中的值决定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到不少DB2 foreign key的referencial constraint的问题,翻了SQL reference才知道,某些情况下,创建delete rule是有限制的。而网上基本上没有人写过这些限制,所以写点总结,填下空白:

1.  如果父表和子表是同一张表,即自己引用自己,则必须指定CASCADE or NO ACTIONSET NULL只能在外键中的某些column允许NULL且这些column都不是partitioning indexkey时指定。

2.  多个表间Delete的传播不可以导致任何一个表delete-connect到自己。

3.  如果父表和子表间有多个delete-connection,那么父表和子表的依赖关系必须相同,且不能为SET NULL

另外,关于默认的ON DELETE RULES:依赖于当create table时,一个叫CURRENT RULES的特殊register里的值,如果里面的值是'DB2',则默认的delete ruleRESTRICT;如果里面的值是'SQL',则默认的delete ruleNO ACTION

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值