MySQL 觸發器例子(兩張表同步增加和刪除)

2022-09-16 20:21:14 字數 2803 閱讀 7312

以下兩個例子來自:

實測有效,但是原帖的分隔符不正確,因此稍作修改。

其中old表示tab2(被動觸發),new表示tab1(主動觸發,外部應用程式在此表裡執行insert語句)

例子1:

建立兩個表,目的是在乙個表裡新增一條記錄,另乙個表也新增一條記錄:

drop table if exists tab1;

create table tab1(

tab1_id varchar(11)

);drop table if exists tab2;

create table tab2(

tab2_id varchar(11)

);建立觸發器:t_afterinsert_on_tab1

作用:增加tab1表記錄後自動將記錄增加到tab2表中

delimiter ||

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||

delimiter ;

測試:insert into tab1(tab1_id) values('0001');

檢視結果:

select * from tab1;

select * from tab2;

例子2:

建立兩個表,目的是在乙個表裡刪除一條記錄,另乙個表也刪除一條記錄:

delimiter || 

//mysql 預設結束符號是分號,當你在寫觸發器或者儲存過程時有分號出現,會中止轉而執行  

drop

trigger

ifexists t_afterdelete_on_tab1||

create

trigger

t_afterdelete_on_tab1

after

delete

ontab1

foreach 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;

以下兩個例子來自:

實測有效,但是原帖的分隔符不正確,因此稍作修改。

其中old表示tab2(被動觸發),new表示tab1(主動觸發,外部應用程式在此表裡執行insert語句)

例子1:

建立兩個表,目的是在乙個表裡新增一條記錄,另乙個表也新增一條記錄:

drop table if exists tab1;

create table tab1(

tab1_id varchar(11)

);drop table if exists tab2;

create table tab2(

tab2_id varchar(11)

);建立觸發器:t_afterinsert_on_tab1

作用:增加tab1表記錄後自動將記錄增加到tab2表中

delimiter ||

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||

delimiter ;

測試:insert into tab1(tab1_id) values('0001');

檢視結果:

select * from tab1;

select * from tab2;

例子2:

建立兩個表,目的是在乙個表裡刪除一條記錄,另乙個表也刪除一條記錄:

delimiter || 

//mysql 預設結束符號是分號,當你在寫觸發器或者儲存過程時有分號出現,會中止轉而執行  

drop

trigger

ifexists t_afterdelete_on_tab1||

create

trigger

t_afterdelete_on_tab1

after

delete

ontab1

foreach 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 觸發器例子(兩張表同步增加和刪除)

以下兩個例子來自 實測有效,但是原帖的分隔符不正確,因此稍作修改。例子1 建立兩個表,目的是在乙個表裡新增一條記錄,另乙個表也新增一條記錄 drop table if exists tab1 create table tab1 tab1 id varchar 11 drop table if exi...

MySQL 觸發器例子(兩張表同步增加和刪除)

以下兩個例子來自 實測有效,但是原帖的分隔符不正確,因此稍作修改。其中old表示tab2 被動觸發 new表示tab1 主動觸發,外部應用程式在此表裡執行insert語句 例子1 建立兩個表,目的是在乙個表裡新增一條記錄,另乙個表也新增一條記錄 drop table if exists tab1 c...

MySQL實現兩張表資料的同步

有兩張表a和b,要求往a裡面插入一條記錄的同時要向b裡面也插入一條記錄,向b裡面插入一條記錄的同時也向a插入一條記錄。兩張表的結構不同,需要將其中幾個字段對應起來。可以用下面的觸發器實現。表a的觸發器 begin set disable 1 if disable 1 and not exists s...