MySql触发器无法更新同一个表

时间:2014-04-07 02:32:52

标签: mysql triggers

问题在于,我想要一个触发器来删除新行插入的同一个表中的旧行。

MsSQLoracle可以做到这一点, 但看起来mySQL不能,

它允许创建触发器,但是当它运行时会产生错误

  

“无法在存储过程或函数/触发器中更新表”tbl“   因为它已被statemtent使用,因此调用了这个存储的   程序或功能/触发器“

有什么解决方法吗? 它是否计划在未来的版本中使用?

1 个答案:

答案 0 :(得分:0)

我的数据库中包含字段名为GHOST的所有表,因此当GHOST为TRUE时,此行就像DELETED一样。因此,如果您想在插入后更改行,可以使用如下:

CREATE TRIGGER my_trigg
BEFORE INSERT ON table
FOR EACH ROW
BEGIN 
SET NEW.ghost = TRUE;
END
$$
DELIMITER ;