~~語法~~create
trigger
觸發器名 --觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.
--觸發器有執行的時間設定:可以設定為事件發生前或後。
--同樣也能設定觸發的事件:它們可以在執行insert、update或delete的過程中觸發。
on 表名 --觸發器是屬於某乙個表的:當在這個表上執行插入、 更新或刪除操作的時候就導致觸發器的啟用. 我們不能給同一張表的同乙個事件安排兩個觸發器。
for
each
row--觸發器的執行間隔:
for each row子句通知觸發器 每隔一行執行一次動作,而不是對整個表執行一次。
觸發器sql語
--觸發器包含所要觸發的sql語句:這裡的語句可以是任何合法的語句, 包括復合語句,但是這裡的語句受的限制和函式的一樣。
new 與 old 詳解
上述示例中使用了new關鍵字,和 ms sql server 中的 inserted 和 deleted 類似,mysql 中定義了 new 和 old,用來表示
觸發器的所在表中,觸發了觸發器的那一行資料。
具體地:
在 insert 型觸發器中,new 用來表示將要(before)或已經(after)插入的新資料;
在 update 型觸發器中,old 用來表示將要或已經被修改的原資料,new 用來表示將要或已經修改為的新資料;
在 delete 型觸發器中,old 用來表示將要或已經被刪除的原資料;
使用方法: new.columnname (columnname 為相應資料表某一列名)
另外,old 是唯讀的,而 new 則可以在觸發器中使用 set 賦值,這樣不會再次觸發觸發器,造成迴圈呼叫(如每插入乙個學生前,都在其學號前加「2013」)。
檢視觸發器
和檢視資料庫(show databases;)檢視**(show tables;)一樣,檢視觸發器的語法如下:
作用是 增加tab1表記錄之後 自動將記錄新增到tab2表中
create trigger t_afterinsert_ontab1
after insert on tab1
for each row
begin
insert into tab2(tab2_id) values(new.tab1_id) ;
end ;
insert into tab1 (tab1_id) values(100);
select * from tab1 ;
select * from tab2 ;
作用是 當刪除tab1表記錄的後 會自動將tab2中的對應的記錄刪除
create trigger afterdeletetrriger
after delete on tab1
for each row
begin
delete from tab2 where tab2_id=old.tab1_id ;
end ;
delete from tab1 where tab1_id= 100 ;
select * from tab2 ;
MySQL 觸發器入門
mysql 5.1包含對觸發器的支援。觸發器是一種與表操作有關的資料庫物件,當觸發器所在表上出現指定事件時,將呼叫該物件 即表的操作事件觸發表上的觸發器的執行。在mysql中,建立觸發器語法如下 create trigger trigger name trigger time trigger eve...
觸發器 mysql觸發器
觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...
mysql之觸發器入門
觸發器語法 create trigger 觸發器名稱 觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.觸發器有執行的時間設定 可以設定為事件發生前或後。同樣也能設定觸發的事件 它們可以在執行insert update或delete的過程中觸發。on...