从多个表中删除后的Mysql触发器

标签 mysql triggers multiple-tables

您好,我在删除后创建触发器,但仍然出现错误:“where 子句”中的未知列“OLD.merchant_id”

DELETE FROM on_size WHERE merchant_id=OLD.merchant_id;
DELETE FROM on_category WHERE merchant_id=OLD.merchant_id;
DELETE FROM on_item WHERE merchant_id=OLD.merchant_id;
DELETE FROM on_merchant_user WHERE merchant_id=OLD.merchant_id;
DELETE FROM on_offers WHERE merchant_id=OLD.merchant_id;
DELETE FROM on_rating WHERE merchant_id=OLD.merchant_id;
DELETE FROM on_review WHERE merchant_id=OLD.merchant_id;
DELETE FROM on_voucher WHERE merchant_id=OLD.merchant_id;
DELETE FROM on_voucher_new WHERE merchant_id=OLD.merchant_id;
DELETE ord,ord_da,ord_det,ord_his,ord_sms
FROM on_order ord
JOIN on_order_delivery_address ord_da ON ord.order_id=ord_da.order_id
JOIN on_order_details ord_det ON ord.order_id=ord_det.order_id
JOIN on_order_history ord_his ON ord.order_id=ord_his.order_id
JOIN on_order_sms ord_sms ON ord.order_id=ord_sms.order_id
WHERE ord.merchant_id=OLD.merchant_id;

我可以在触发器中删除多个表吗? 只有on_order可以用merchant_id标识,其他表没有这个。

谢谢。

最佳答案

缺少 BEGIN 和 END。 声明后就一切ok了。

关于从多个表中删除后的Mysql触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40362062/

相关文章:

sql-server - 将触发器复制行插入另一个重复表 SQL Server 2008

sql - 如何在子触发器中访问父表的已删除行

wpf - 在属性更改之前,您可以定义一个要播放的 Storyboard吗?

sql - 加入 3 个表并从所有表中检索所有记录

mysql - 获取结果列表并在一个查询中获取总数

c# 自动将 am/pm 添加到我的(字符串)日期值

php - 将 2 个 Mysql 查询组合成 1 个(有效方式)

mysql - SQL:JOIN 和其他表的基础知识

php mysqli 查询不起作用

mysql - 从 MySQL 中的多个表中检索记录