当列字段达到0时触发删除行?
Posted
技术标签:
【中文标题】当列字段达到0时触发删除行?【英文标题】:Trigger to delete rows when column field reaches 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
【问题讨论】:
请标记您的数据库 【参考方案1】:你不能用 mysql 中的触发器来做到这一点,请参阅documentation:
存储的函数或触发器不能修改已被调用函数或触发器的语句使用(用于读取或写入)的表。
相反,您可以创建 event
并安排为您删除这些行:
create event deletesold
on schedule at current_timestamp + interval 1 hour
DO
delete from sold where Quantity = 0;
【讨论】:
那么我会看到更多关于活动的信息,谢谢!以上是关于当列字段达到0时触发删除行?的主要内容,如果未能解决你的问题,请参考以下文章
当列值是 84 字节文本字段时,postgres 中保持列唯一的最有效方法是啥?
数据库中两张表之间的数据同步实现思路(增加删除更新)Mysqlsqlserver