外键:保证数据的完整性和一致性,外键的规则和约束

本文详细介绍了数据库中外键约束的三种操作:CASCADE(级联删除)、NOACTION(非活动,默认)和RESTRICT(约束/限制),以及SETNULL。CASCADE在删除主键表记录时会同步删除外键表的相关记录,保持数据一致性。而NOACTION和RESTRICT则阻止在主键表中有相关外键记录时删除操作。SETNULL允许在删除主键记录时将外键字段设为NULL。这些约束确保了数据库的数据完整性和一致性。

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

1、CASCADE:级联

(1)所谓的级联删除,就是删除主键表的同时,外键表同时删除。

(2)以上面的例子将就是,假如院系表中的某个院系被删除了,那么在学生表中要想查询这个被删除的院系号所对应的院信息就会报错,因为已经不存在这个系了,所以,删除院系表(主键表)时必须删除其他与之关联的表,这里就说明了外键的作用,保持数据的一致性、完整性。当然反过来讲,你删除学生表中的记录,并不影响院系表中的数据,你查询院系号也能正确查询。所以删除外键表中的数据并不影响主键表。

2、NO ACTION(非活动,默认)、RESTRICT:约束/限制

当取值为No Action或者Restrict时,则当在主键表中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。(即外键表约束主键表)

3、SET NULL

当取值为Set Null时,则当在主键表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(,一样是外键表约束主键表,不过这就要求该外键允许取null)。

NO ACTION和RESTRICT的区别:只有在及个别的情况下会导致区别,前者是在其他约束的动作之后执行,后者具有最高的优先权执行。

参考文档:数据库(外键及其约束理解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值