MYSQL触发器级联删除

本文介绍如何通过创建触发器解决因外键约束而无法直接删除表中记录的问题。提供了一个具体的触发器示例,展示如何在删除主表记录的同时,自动删除从表中对应的记录。

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

由于外键的原因,不能删除表中的一条记录。可以用触发器来实现删除。

CREATE TRIGGER trigger_name
BEFORE DELETE ON table1_name
FOR EACH ROW
BEGIN
  DELETE FROM table2_name WHERE table2_id = OLD.id;
END;

“trigger_name”是触发器的名字(自己定义);
“table1_name”是建立该触发器的表。也就是要执行删除语句的表。
“table2_name”是触发器关联的表。即要级联删除的表。
“BEGIN END”关键词中间执行 删除的级联表中数据语句,多条语句用“;”间隔。
“old.”是关键字。代表级联表中的外键字段(具体删除哪条数据)。

DELEETE FROM table1_name WHERE table1_id=30;

这样再删除数据就会把所有相关的语句都删除了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值