1. 触发器
触发器会把我们 添加 修改 删除 操作之前或之后 触发执行 触发器 中定义的SQL语句
这些特性可以作为 日志记录 数据校验 确保数据完整性
使用 别名 NEW 和 OLD 关键字来引用触发器 发生变化的内容记录
NEW 为触发后表的数据 为一个单行多列结果
OLD 为触发器前表的数据
OLD 是只读的,而 NEW 则可以在触发器中使用 SET 赋值,这样不会再次触发触发器,造成循环调用(如每插入一个学生前,都在其学号前加“2013”)。
-- 创建触发器
delimiter $
create trigger 触发器名称
before|after(定义操作前/后) insert|update|delete(定义触发器类型)
on 表名
for each row
begin
sql语句;
-- 可以使用 NEW / OLD 关键字来获取更新前后的数据 如new.name old.name
end$
delimiter$
样例
delimiter $$
CREATE TRIGGER upd_check
BEFORE UPDATE ON account
FOR EACH ROW
BEGIN
IF NEW.amount < 0 THEN
SET NEW.amount = 0;
ELSEIF NEW.amount > 100 THEN
SET NEW.amount = 100;
END IF;
END$$
delimiter ;
- 查看触发器 show triggers;
- 删除触发器 drop trigger 触发器名称;