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

碼頭工人 10年前發布 | 25K 次閱讀 MySQL 數據庫服務器

其中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 ||
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;

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!