MySQL 9.0 发行说明
触发器是一个命名的数据库对象,它与一个表相关联,并在该表发生特定事件时激活。触发器的一些用途是执行对要插入到表中的值的检查,或对涉及更新的值执行计算。
触发器被定义为在语句插入、更新或删除相关表中的行时激活。这些行操作是触发事件。例如,可以通过 INSERT
或 LOAD DATA
语句插入行,并且插入触发器会为每个插入的行激活。可以将触发器设置为在触发事件之前或之后激活。例如,您可以让触发器在将每一行插入到表中之前或更新每一行之后激活。
重要
MySQL 触发器仅对通过 SQL 语句对表所做的更改激活。这包括对可更新视图的基础表的更改。对于未将 SQL 语句传输到 MySQL 服务器的 API 对表所做的更改,触发器不会激活。这意味着使用 NDB
API 进行的更新不会激活触发器。
INFORMATION_SCHEMA
或 performance_schema
表中的更改不会激活触发器。这些表实际上是视图,并且不允许在视图上使用触发器。
以下部分描述了创建和删除触发器的语法,展示了一些如何使用它们的示例,并说明了如何获取触发器元数据。
其他资源
在使用触发器时,您可能会发现 MySQL 用户论坛 很有帮助。
有关 MySQL 中触发器的常见问题的答案,请参阅 第 A.5 节“MySQL 9.0 常见问题解答:触发器”。
对触发器的使用有一些限制;请参阅 第 27.9 节“存储程序的限制”。
触发器的二进制日志记录按照 第 27.8 节“存储程序二进制日志记录” 中的描述进行。