MySQL高階八 觸發器的使用

2021-07-09 09:23:11 字數 1491 閱讀 2087

觸發器是一種特殊的儲存過程,它在插入,刪除或者修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。

它具有這樣的特徵:

監視地點:一般就是表名

監視事件: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 來引用觸發器中發生變化的記錄內容,這與其他的資料庫是相似的...