您的位置:首页 > 数据库 > MySQL

mysql触发器

2018-03-27 10:23 260 查看
1.什么是触发器
需求:出于审计目的,当有人在往temp_user 插入一条记录时,把插入的uid,uname,插入动作和操作时间记录下来。delimiter $$
create trigger tr_user_insert after insert on temp_user
for each row
begin
insert into temp_oplog(uid,uname,action,optime)
values(new.uid,new.uname,'insert',NOW());
end;
$$
delimiter ;1.创建触发器使用 create trigger 触发器名称
2.什么时候触发? after insert on temp_user,除了after还有before,是在对表操作之前(before)或之后(after)触发动作的。
3.对什么操作时事件触发? after insert on temp_user, 操作事件包括 insert,update,delete
4.对什么表触发? after insert on temp_user
5.影响的范围? for each row
6.NEW 代表 插入 更新 删除之后的字段值,OLD 代表插入 更新 删除之前的字段值
触发器:与函数、存储过程一样,触发器是一种对象,它能根据对表的操作事件,触发一些动作,这些动作可以是insert,update,delete等修改操作。
2.生产环境触发器实例
需求:出于审计目的,当删除users表时,记录删除前应该记录的主要字段值create trigger tr_user_delete before delete on temp_user
for each row
BEGIN
insert into temp_oplog(uid,uname,action,optime,old_value)
values(OLD.uid,OLD.uname,'delete',NOW(),OLD.regtime);
END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: