

新闻资讯
技术学院触发器是MySQL中事件驱动的自动执行机制,当对指定表执行INSERT、UPDATE或DELETE操作时,按行触发BEFORE或AFTER定义的SQL逻辑,通过NEW/OLD访问数据,用于校验、同步、日志等场景。
触发器是 MySQL 中一种与表紧密绑定的自动执行机制,它不是手动调用的存储过程,而是在对某张表执行 INSERT、UPDATE 或 DELETE 操作时,由数据库系统自动触发并运行的一段 SQL 逻辑。
它的本质是“事件驱动”:当指定表上发生特定 DML 操作(增、删、改)时,MySQL 会立即检查是否存在匹配的触发器。如果存在,且满足触发时间(BEFORE 或 AFTER)、操作类型和作用表等条件,就自动执行其定义的 SQL 语句块。
触发器按行生效(行级触发),即每影响一行数据,就触发一次。内部可通过 NEW(代表新值,INSERT/UPDATE 可用)和 OLD(代表旧值,UPDATE/DELETE 可用)关键字访问当前被操作行的字段内容。
ORE(操作前校验/修改)或 AFTER(操作后联动/记录)比如在 orders 表插入新订单后,自动减少 product 表对应商品的库存:
CREATE TRIGGER update_stock_after_order
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE product SET num = num - NEW.quantity WHERE pid = NEW.pid;
END;
这里 NEW.quantity 和 NEW.pid 就是刚插入那行订单里的字段值,MySQL 自动提供,无需额外查询。