一、介绍
触发器是与表有关的数据库对象,指在 insert/update/delete
之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录,数据校验等操作 。
使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。
OLD是用来引用原来的记录内容,NEW引用的是新的记录内容。
行级触发:当我们执行一条update语句,它影响了五行,那么这个时候触发器会被触发五次。
如果是语句级触发,它代表的是:你执行一条update,不管这条update影响了多少行,我只触发一次。
触发器类型 | NEW 和 OLD |
---|---|
INSERT 型触发器 | NEW 表示将要或者已经新增的数据 |
UPDATE 型触发器 | OLD 表示修改之前的数据,NEW 表示将要或者已经修改后的数据 |
DELETE 型触发器 | OLD 表示将要或者已经删除的数据 |
二、语法
1). 创建
CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON tbl_name FOR EACH ROW -- tbl_name:表名。FOR EACH ROW:行级触发器
BEGIN
trigger_stmt; -- 编写触发器里面的具体逻辑
END;
2). 查看
SHOW TRIGGERS; -- 查看当前数据库中所有的触发器
3). 删除
DROP TRIGGER [schema_name.]trigger_name ; -- 删除指定数据库下的触发器,如果没有指定 schema_name,默认为当前数据库。