我已经在 MySQL 的单个表上编写了插入前触发器和插入后触发器。但是当我放置另一个触发器时,其中一个触发器会自动被替换。如果我在插入触发器之后放置,插入触发器之前的代码会自动被替换。 请注意它已被删除,或者您可以删除代码。
他们两个单独工作都很好。请帮我解决这个问题。
最佳答案
MySQL 5.7.2 之前
每个表只能有一个触发器以及触发器事件和操作时间。例如可以有
- 一个
BEFORE UPDATE
和一个AFTER UPDATE
或 - 一个
BEFORE UPDATE
和一个BEFORE INSERT
在 table 上触发。但是您可以通过使用 BEGIN ... END
来拥有执行多条语句的触发器。参见 MySQL 5.6 Documentation获取更多信息。
使用 MySQL 5.7.2
不再限制每个表的触发器数量。此外,还可以使用 PRECEDES
和 FOLLOWS
关键字定义触发器处理的顺序。参见 MySQL 5.7 Documentation获取更多信息。
关于mysql - 我们可以在 mysql 的单个表上有多个触发器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16228572/