# 創建insert型觸發器,完成插入數據時的日志記錄delimiter $
createtrigger emp_logs_insert_trigger
afterinserton emp
for each rowbegininsertinto 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;# 查看觸發器show triggers;
創建 update 型觸發器,完成更新數據時的日志記錄 :
delimiter $
createtrigger emp_logs_update_trigger
afterupdateon emp
for each rowbegininsertinto 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;
創建delete 行的觸發器 , 完成刪除數據時的日志記錄 :
DELIMITER $
createtrigger emp_logs_delete_trigger
afterdeleteon emp
for each rowbegininsertinto 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;
6. 測試:
insertinto emp(id,name,age,salary)values(null,'光明左使',30,3500);SELECT*from emp;SELECT*from emp_logs;insertinto emp(id,name,age,salary)values(null,'光明右使',33,3200);SELECT*from emp;SELECT*from emp_logs;update emp set age =39where id =3;SELECT*from emp;SELECT*from emp_logs;deletefrom emp where id =4;SELECT*from emp;SELECT*from emp_logs;