MySql on delete/on update

本文详细阐述了数据库中A表与B表间外键关联的两种关键行为:ondelete cascade和ondeletesetnull,以及onupdate cascade和onupdatesetnull。理解这些规则有助于避免数据一致性问题。

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

A 表的 id 是 B 表外键

一、on delete

1. on delete cascade:删除 A 表的数据时,对应 B 表的数据也会删除

2. on delete set null:删除 A 表的数据时,对应 B 表的外键字段置为空(前提是该字段可以为空)

如果添加外键时没加上面内容,删除 A 表的数据时,如果对应 B 表有数据就会报错

二、on update

1. on update cascade:更新 A 表数据的 id 时,对应 B 表的外键字段也会更新

2. on update set null:更新 A 表数据的 id 时,对应 B 表的外键字段置为空(前提是该字段可以为空)

如果添加外键时没加上面内容,更新 A 表的 id,如果对应 B 表有数据就会报错

添加外键语句:alter table user add constraint FK_1 foreign key(role_id) references role(id) on delete cascade on update cascade;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值