Mysql外键级联动作(删除和更新)

本文探讨了在MySQL中使用外键进行表间关联的重要性,特别是外键的级联动作,如cascade、set null、restrict和no action。通过示例解释了这些操作如何影响父表和子表之间的数据同步,特别是在删除和更新记录时的行为差异。强调了InnoDB存储引擎对外键约束的支持,并指出未设置级联动作时的默认行为。
摘要由CSDN通过智能技术生成

在实际开发中,我们创建表和表之间关联的时候很少用到外键,但是有时候需要用到外键,准确地说是用到外键的级联动作,例如你有一张用户表,存了一些用户的基本信息user表,如果这张表中的属性过多,我们可能需要另一张表也用来存储用户的信息,比如存一些登录信息,就叫login_user表,很明显这时候在login_user中设置一个外键去关联user表更合适,虽然不用外键也可以达到效果(使用触发器当然也行),为什么要设置外键呢?是因为我想在user表中删除一条记录的时候同时把user_login相应的记录也删除掉。好了于是我们在login_user表中添加了一个外键列user_id关联user表中的id,这时user表就叫父表,我们现在研究的是父表的删除和更新操作对子表的影响

这种影响有四个分类:cascade、set null 、restrict、no action。

1、cascade,如果你设置外键的更新或删除时设置为cascade,那么你对父表的删除或更新操作同时会删除或更新到子表,就以上面的两张表为例,你如果在user表中删除了一条id=1,001的记录,那么user_login中外键列user_id=1001 的记录都会被删除掉(如果没有的话当然不会删喽)。如果你把user表中的id=1002的记录改为id=100002那么在user_login表中外键列user_id=1002的记录也会全部改为100002,如果你不修改user表中的对照列id,去修改别的属性,那当然不会影响子表什么。这就是cascade。

2、no action 和 restrict 相同,

2022年,MySQL 5级联动是指在MySQL数据库中通过外键关系设置多个表之间的级联操作。级联操作是指当一张表的记录发生变化时,该表中与之关联的其他表的记录也会随之进行相应的更新删除或插入操作。 在MySQL数据库中,可以通过设置外键关系来实现级联操作。外键是一种约束,用于确保数据的一致性和完整性。通过定义外键,可以指定表之间的关系,并通过级联操作来保持这些关系的完整性。 MySQL 5提供了4种级联操作的类型: 1. 级联更新(CASCADE UPDATE):当参照表中的记录发生变化时,被参照表中的相关记录也会进行更新操作。 2. 级联删除(CASCADE DELETE):当参照表中的记录被删除时,被参照表中的相关记录也会被自动删除。 3. 级联插入(CASCADE INSERT):当在参照表中插入新记录时,被参照表中的相关记录也会自动插入。 4. 级联无效(CASCADE INVALIDATE):在MySQL 5中,当外键约束失效时,级联无效操作会导致被参照表中的相关记录被设置为无效。 通过使用这四种级联操作类型,可以在MySQL数据库中实现表之间的级联操作,从而保持多个表之间关系的一致性和完整性。 综上所述,2022年MySQL 5级联动是指通过外键关系,在MySQL数据库中实现多表之间的级联操作,包括级联更新级联删除级联插入和级联无效操作。这些操作可以保持数据库中表之间关系的一致性和完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值