~~語法~~create
trigger
《觸發器名稱》 --觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.
--觸發器有執行的時間設定:可以設定為事件發生前或後。
--同樣也能設定觸發的事件:它們可以在執行insert、update或delete的過程中觸發。
on 《表名稱》 --觸發器是屬於某乙個表的:當在這個表上執行插入、 更新或刪除操作的時候就導致觸發器的啟用. 我們不能給同一張表的同乙個事件安排兩個觸發器。
for
each
row--觸發器的執行間隔:for each row子句通知觸發器 每隔一行執行一次動作,而不是對整個表執行一次。
《觸發器sql語句》 --觸發器包含所要觸發的sql語句:這裡的語句可以是任何合法的語句, 包括復合語句,但是這裡的語句受的限制和函式的一樣。
--你必須擁有相當大的許可權才能建立觸發器(create trigger),如果你已經是root使用者,那麼就足夠了。這跟sql的標準有所不同。
~~例項~~建立表tab1
1
2
3
4
drop
table
if exists tab1;
create
table
tab1(
tab1_id
varchar
(11)
);
建立表tab2
1
2
3
4
drop
table
if exists tab2;
create
table
tab2(
tab2_id
varchar
(11)
);
建立觸發器:t_afterinsert_on_tab1
作用:增加tab1表記錄後自動將記錄增加到tab2表中
1
2
3
4
5
6
7
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
;
測試一下
1
insert
into
tab1(tab1_id)
values
(
'0001'
);
看看結果
1
2
select
*
from
tab1;
select
*
from
tab2;
example2:
建立觸發器:t_afterdelete_on_tab1
作用:刪除tab1表記錄後自動將tab2表中對應的記錄刪去
1
2
3
4
5
6
7
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
;
測試一下
1
delete
from
tab1
where
tab1_id=
'0001'
;
看看結果
1
2
select
*
from
tab1;
select
*
from
tab2;
來自:
MySQL 觸發器簡單例項
mysql 觸發器簡單例項 語法 create trigger 觸發器名稱 觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.觸發器有執行的時間設定 可以設定為事件發生前或後。同樣也能設定觸發的事件 它們可以在執行insert update或dele...
MySQL 觸發器簡單例項
語法 create trigger 觸發器名稱 觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.觸發器有執行的時間設定 可以設定為事件發生前或後。同樣也能設定觸發的事件 它們可以在執行insert update或delete的過程中觸發。on 表名...
MySQL 觸發器簡單例項
語法 create trigger 觸發器名稱 觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.觸發器有執行的時間設定 可以設定為事件發生前或後。同樣也能設定觸發的事件 它們可以在執行insert update或delete的過程中觸發。on 表名...