create trigger trigger_name
before/after insert/update/delete
on tbl_name
[ for each row ] – 行級觸發器
begin
trigger_stmt ;
end;
– 刪除觸發器
– 如果沒有指定 schema_name,預設為當前資料庫
drop trigger [schema_name.]trigger_name
– show triggers 命令檢視觸發器的狀態、語法等資訊。
show triggers ;
– 建立 insert 型觸發器,完成插入資料時的日誌記錄 :
create trigger emp_logs_insert_trigger
after insert
on emp
for each row
begin
insert 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;
– 建立 update 型觸發器,完成更新資料時的日誌記錄 :
create trigger emp_logs_update_trigger
after update
on emp
for each row
begin
insert 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;
– 建立delete 行的觸發器 , 完成刪除資料時的日誌記錄 :
create trigger emp_logs_delete_trigger
after delete
on emp
for each row
begin
insert 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 ;
– 測試
insert into emp(name,age,salary)
values
(『光明左使』,30,3500);
insert into emp(name,age,salary)
values
(『光明右使』,33,3200);
update emp set age = 39 where id = 2;
delete from emp where id =2;
觸發器 mysql觸發器
觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...
my sql 觸發器 mysql建立觸發器
首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...
my sql 觸發器 MySQL檢視觸發器
檢視觸發器是指檢視資料庫中已經存在的觸發器的定義 狀態和語法資訊等。mysql 中檢視觸發器的方法包括 show triggers 語句和查詢 information schema 資料庫下的 triggers 資料表等。本節將詳細介紹這兩種檢視觸發器的方法。show triggers語句檢視觸發器...