介绍
触发器是与表有关的数据库对象,指在insert、update、delete之前或之后,触发并执行触发器中定义的SQL语句集合
触发器可以协助应用在数据库确保数据的完整性,日志记录,数据校验等操作。
使用别名OLD 和NEW来引用触发器中发生变化的记录内容,并且mysql只支持行级触发(修改几行就触发几次),不支持语句触发(修改10行触发一次)
触发器类型
触发器可以一般用于日志记录
创建触发器语法:
create trigger trigger_test1
after insert on user for each row
begin
...........
end
需求:当user表添加一行数据,则会自动在user_log添加日志记录
insert型触发器
create trigger trigger_test1
after insert on user for each row
begin
insert into user_logs values(NULL,now(),'new',new.id,new.name);
end
update型触发器
create trigger trigger_test4
after update on user for each row
begin
insert into user_logs values(NULL,now(),concat('有用户信息修改:新数据是',NEW.uid,NEW.username,NEW.password),
concat(旧数据是',OLD.uid,OLD.username,OLD.password));
end
delete触发器
create trigger trigger_test5
after delete on user for each row
begin
insert into user_logs values(NULL,now(),concat('有用户被删除,删除信息为:',OLD.uid,OLD.username,OLD.password));
end