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