什麼是MySQL觸發器

2021-06-17 23:23:51 字數 1591 閱讀 4509

mysql的觸發器和儲存過程一樣,都是嵌入到mysql的一段程式。利用mysql觸發器可以對錶進行增、刪、改操作同時響應另一張表做出相同的操作。下面簡單介紹一下mysql觸發器的基本語法。

如何建立乙個觸發器:

修改delimiter為//

mysql> \d //

建立乙個名字為tg1的觸發器,當向t1表中插入資料時,就向t2表中插入一條資料

mysql> create trigger tg1 before insert on t1 for each row

>begin insert into t2(id) values(new.id);

>end//

準備兩個空表t1和t2

mysql> select * from t1;

mysql> select * from t2;

向t1表中插入多條資料:

mysql> insert into t1 values(1),(2),(3),(4);

此時在 t1 表中插入資料的時候也會將資料插入到 t2 表中,這就實現了關聯插入的效果,也可以認為是兩表同步。需要解釋的地方是>begin insert into t2(id) values(new.id);這句裡面的 new.id ,所有插入的資料都為新資料,如果執行的是修改的話,資料是之前存在的,就要用 old ,也就是說,之前沒有的用 new ,之前已經存在的就用 old,下面會講解到刪除、修改操作,相信很快就會理解。

如何製作刪除表t1後t2表中的記錄也會跟著刪除呢?

mysql>\d //

mysql> create trigger tg2 before delete on t1 for each row

>begin delete from t2 where id=old.id;

>end//

mysql>\d ;這一步是將原來的被修改的結束符還原成分號 ;

此時當對表 t1 中資料刪除的時候就會同時刪除 t2 中對應的資料

如何製作更改表t1後t2表中的記錄跟著個性呢?

mysql>\d //

mysql> create trigger tg3 before update on t1 for each row

>begin update t2 set id=new.id where id=old.id;

>end//

mysql>\d ;

此時當對表 t1 中資料修改的時候就會同時修改 t2 中對應的資料

需要注意的地方: where 條件的 等號 兩邊必須有相同的內容,這點相信大家都懂得。

什麼是觸發器?MySQL觸發器概念及其應用解析

觸發器自動執行。當對表進行insert update以及delete操作,試圖修改表中的資料時,相應操作的觸發器立即自動執行。觸發器可以通過資料庫中相關表進行層疊更改。這比直接把 寫在前台的做法更安全合理。觸發器可以實現表的約束實現不了的複雜約束。在觸發器可以引用其他表的列,從而實現多個表之間資料的...

學習什麼是觸發器

一oracle觸發器語法 觸發器是特定事件出現的時候,自動執行的 塊。類似於儲存過程,觸發器與儲存過程的區別在於 儲存過程是由使用者或應用程式顯式呼叫的,而觸發器是不能被直接呼叫的。功能 1 允許 限制對錶的修改 2 自動生成派生列,比如自增字段 3 強制資料一致性 4 提供審計和日誌記錄 5 防止...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...