【问题标题】:Trigger to delete rows when column field reaches 0?当列字段达到0时触发删除行?
【发布时间】:2021-05-08 17:36:26
【问题描述】:

我必须创建一个触发器,当 Quantity 字段达到 0 时会自动删除行,但在运行更新后 Quantity = 0 会出现此错误:

无法更新存储函数/触发器中的表,因为它已被调用此存储函数/触发器的语句使用。

代码如下:

CREATE TRIGGER Deleterow
AFTER UPDATE
ON Sold
FOR EACH ROW
DELETE FROM Sold WHERE NEW.Quantity = 0

【问题讨论】:

  • 请标记您的数据库

标签: mysql sql triggers


【解决方案1】:

你不能用 mysql 中的触发器来做到这一点,请参阅documentation

存储的函数或触发器不能修改已被调用函数或触发器的语句使用(用于读取或写入)的表。

相反,您可以创建 event 并安排为您删除这些行:

create event deletesold
on schedule at  current_timestamp + interval 1 hour
    DO
      delete from sold where Quantity = 0;

【讨论】:

  • 那么我会看到更多关于活动的信息,谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
相关资源
最近更新 更多