## 25.3 使用触发器

[25.3.1 触发器语法和示例](trigger-syntax.html)
[25.3.2 触发元数据](trigger-metadata.html)

[](<>)

触发器是与表关联的命名数据库对象，当表发生特定事件时触发。触发器的一些用途是检查要插入到表中的值或对更新中涉及的值执行计算。

触发器被定义为在语句插入、更新或删除关联表中的行时激活。这些行操作是触发事件。例如，行可以通过[`插入`](insert.html)要么[`加载数据`](load-data.html)语句，并为每个插入的行激活一个插入触发器。触发器可以设置为在触发事件之前或之后激活。例如，您可以在插入表的每一行之前或在更新的每一行之后激活触发器。

重要的

MySQL 触发器仅针对 SQL 语句对表所做的更改激活。这包括对作为可更新视图基础的基表的更改。对于不将 SQL 语句传输到 MySQL 服务器的 API 对表所做的更改，触发器不会激活。这意味着触发器不会被使用[`新开发银行`](mysql-cluster.html)API。

触发器不会被中的更改激活`INFORMATION_SCHEMA`要么`性能模式`表。这些表实际上是视图，并且不允许在视图上使用触发器。

以下部分描述了创建和删除触发器的语法，展示了一些如何使用它们的示例，并说明了如何获取触发器元数据。

### 其他资源

-   你可能会发现[MySQL 用户论坛](https://forums.mysql.com/list.php?20)在使用触发器时很有帮助。

-   有关 MySQL 中触发器的常见问题解答，请参阅[第 A.5 节，“MySQL 8.0 常见问题解答：触发器”](faqs-triggers.html).

-   触发器的使用有一些限制；看[第 25.8 节，“对存储程序的限制”](stored-program-restrictions.html).

-   触发器的二进制日志记录发生在[第 25.7 节，“存储程序二进制日志”](stored-programs-logging.html).
