mysql - 我们可以在 mysql 的单个表上有多个触发器吗

标签 mysql triggers

我已经在 MySQL 的单个表上编写了插入前触发器和插入后触发器。但是当我放置另一个触发器时,其中一个触发器会自动被替换。如果我在插入触发器之后放置,插入触发器之前的代码会自动被替换。 请注意它已被删除,或者您可以删除代码。

他们两个单独工作都很好。请帮我解决这个问题。

最佳答案

MySQL 5.7.2 之前

每个表只能有一个触发器以及触发器事件和操作时间。例如可以有

  • 一个BEFORE UPDATE和一个AFTER UPDATE
  • 一个BEFORE UPDATE和一个BEFORE INSERT

在 table 上触发。但是您可以通过使用 BEGIN ... END 来拥有执行多条语句的触发器。参见 MySQL 5.6 Documentation获取更多信息。

使用 MySQL 5.7.2

不再限制每个表的触发器数量。此外,还可以使用 PRECEDESFOLLOWS 关键字定义触发器处理的顺序。参见 MySQL 5.7 Documentation获取更多信息。

关于mysql - 我们可以在 mysql 的单个表上有多个触发器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16228572/

相关文章:

wpf - 如何通过触发器更改 IsReadOnly

PHP:使用 strtotime 转换 MySQL UTC 日期以供 pChart 使用

php - 使用一个php文件创建不同的页面

PHP & MySQL 不更新数据库

mysql - SQL触发器插入一个表,多次复制到另一个表

multithreading - 如何创建触发器以并行运行多个功能(传递参数)

mysql - 从整数年、月和日期构造 java.sql.Date

mysql - 如何在 MySQL 左连接中对列求和

oracle - 如何在 Oracle 中开发一个 after serverror 触发器?

docker - 在 kubernetes 中创建或删除 pod 时触发事件以在某些数据库中写入或删除其 IP