MySQL 高级 - 触发器 - 创建及应用
生活随笔
收集整理的這篇文章主要介紹了
MySQL 高级 - 触发器 - 创建及应用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
創(chuàng)建觸發(fā)器
語(yǔ)法結(jié)構(gòu) :
create trigger trigger_name before/after insert/update/deleteon tbl_name [ for each row ] -- 行級(jí)觸發(fā)器begintrigger_stmt ;end;示例
需求
通過(guò)觸發(fā)器記錄 emp 表的數(shù)據(jù)變更日志 , 包含增加, 修改 , 刪除 ;首先創(chuàng)建一張日志表 :
create table emp_logs(id int(11) not null auto_increment,operation varchar(20) not null comment '操作類型, insert/update/delete',operate_time datetime not null comment '操作時(shí)間',operate_id int(11) not null comment '操作表的ID',operate_params varchar(500) comment '操作參數(shù)',primary key(`id`) )engine=innodb default charset=utf8;創(chuàng)建 insert 型觸發(fā)器,完成插入數(shù)據(jù)時(shí)的日志記錄 :
DELIMITER $create trigger emp_logs_insert_trigger after insert on emp for each row begininsert into emp_logs (id,operation,operate_time,operate_id,operate_params) values(null,'insert',now(),new.id,concat('插入后(id:',new.id,', name:',new.name,', age:',new.age,', salary:',new.salary,')')); end $DELIMITER ;創(chuàng)建 update 型觸發(fā)器,完成更新數(shù)據(jù)時(shí)的日志記錄 :
DELIMITER $create trigger emp_logs_update_trigger after update on emp for each row begininsert into emp_logs (id,operation,operate_time,operate_id,operate_params) values(null,'update',now(),new.id,concat('修改前(id:',old.id,', name:',old.name,', age:',old.age,', salary:',old.salary,') , 修改后(id',new.id, 'name:',new.name,', age:',new.age,', salary:',new.salary,')')); end $DELIMITER ;創(chuàng)建delete 行的觸發(fā)器 , 完成刪除數(shù)據(jù)時(shí)的日志記錄 :
DELIMITER $create trigger emp_logs_delete_trigger after delete on emp for each row begininsert into emp_logs (id,operation,operate_time,operate_id,operate_params) values(null,'delete',now(),old.id,concat('刪除前(id:',old.id,', name:',old.name,', age:',old.age,', salary:',old.salary,')')); end $DELIMITER ;測(cè)試:
insert into emp(id,name,age,salary) values(null, '光明左使',30,3500); insert into emp(id,name,age,salary) values(null, '光明右使',33,3200);update emp set age = 39 where id = 3;delete from emp where id = 5;總結(jié)
以上是生活随笔為你收集整理的MySQL 高级 - 触发器 - 创建及应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MySQL 高级 - 触发器 - 介绍
- 下一篇: MySQL 高级 - 触发器 - 查看及