觸發器是一種特殊的儲存過程,它在插入,刪除或者修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。
它具有這樣的特徵:
監視地點:一般就是表名
監視事件:update/delete/insert
觸發事件:update/delete/insert
他不能直接被呼叫,是由資料庫主動執行。
example1:
建立表tab1
drop table if exists tab1;
create table tab1(
tab1_id varchar(11)
);
建立表tab2
drop table if exists tab2;
create table tab2(
tab2_id varchar(11)
);
建立觸發器:t_afterinsert_on_tab1
作用:增加tab1表記錄後自動將記錄增加到tab2表中
drop trigger if exists t_afterinsert_on_tab1;
create trigger t_afterinsert_on_tab1
after insert on tab1
for each row
begin
insert into tab2(tab2_id) values(new.tab1_id);
end;
測試一下
insert into tab1(tab1_id) values('0001');
看看結果
select * from tab1;
select * from tab2;
example2:
建立觸發器:t_afterdelete_on_tab1
作用:刪除tab1表記錄後自動將tab2表中對應的記錄刪去
drop trigger if exists t_afterdelete_on_tab1;
create trigger t_afterdelete_on_tab1
after delete on tab1
for each row
begin
delete from tab2 where tab2_id=old.tab1_id;
end;
測試一下
delete from tab1 where tab1_id='0001';
看看結果
select * from tab1;
select * from tab2;
MySQL高階 觸發器
觸發器是與表有關的資料庫物件,指在insert update delete 之前或之後,觸發並執行觸發器中定義的sql語句集合。類似js中的事件 觸發器的這種特性可以協助應用在資料庫端確保資料的完整性 日誌記錄 資料校驗等操作。使用別名 old 和 new 來引用觸發器中發生變化的記錄內容,這與其他...
積分觸發器 mysql 觸發器的使用
將多個資料庫中的某列資料同步時需要用到mysql觸發器,以下可做參考,已簡單測試ok.修改紅棗的積分時觸發 drop trigger if exists u hongzaocount delimiter create trigger u hongzaocount after update on ho...
MySQL高階之觸發器
觸發器是與表有關的資料庫物件,指在 insert update delete 之前或之後,觸發並執行觸發器中定義的sql語句集合。觸發器的這種特性可以協助應用在資料庫端確保資料的完整性 日誌記錄 資料校驗等操作 使用別名 old 和 new 來引用觸發器中發生變化的記錄內容,這與其他的資料庫是相似的...