MySQL觸發器(TRIGGER)使用說明

來源:互聯網
上載者:User

MySQL觸發器TRIGGER)使用說明
觸發器程式是與表有關的命名資料庫物件,表上出現特定事件時,將啟用該對象。Mysql5之後開始支援觸發器,並且在建立觸發器後會自動在/var/lib/mysql目錄下產生TRG以及TRN檔案(Linux下),必須擁有足夠的許可權才能建立觸發器。

createtrigger<觸發器名稱>
{before|after}
{insert|update|delete}
on<表名>
foreachrow
<觸發器SQL語句>
參數詳解如下:
createtrigger<觸發器名稱>:建立一個新觸發器,並指定觸發器的名稱,最多64個字元。
{before|after}:用於指定在insert、update或delete語句執行前觸發還是在語句執行後觸發。

{insert|delete|update}:觸發事件
on<表名>:用於指定響應該觸發器的表名。
foreachrow:觸發器的執行間隔,foreachrow通知觸發器每隔一行執行一次動作,而不是對整個表執行一次。
<觸發器SQL語句>:觸發器要執行的SQL語句,如果該觸發器要執行多條SQL語句,要將多條語句放在begin…end塊中。
如:begin…end塊

MySQL語句樣本:
sqlstr("
createtriggeruser_delete
afterdelete
onuser
foreachrow

BEGIN
deletefromuser_bakwhereid=old.id;
deletefromaaawhereid=old.id;
END;");

MySQL命令列下建立觸發程式,執行個體1:

delimiter//#將MySQL命令列分割符修改為“//”,預設為";",在命令列用戶端中,如果有一行命令以分號結束,那麼斷行符號後,mysql將會執行該命令。
createTRIGGERtestrefbeforeINSERTontest1
foreachrow

BEGIN
insertintotest2seta2=new.a1;
deletefromtest3wherea3=new.a1;
updatetest4setb4=b4+1wherea4=new.a1;
END//
delimiter;#將MySQL命令列預設分割符恢複為";"

樣本2:

droptriggercommon_member_insert;//如果觸發器member_update存在則刪除
delimiter|
createtriggercommon_member_insert
afterinsert
on`member`.`common_member`
foreachrow
begin
insertinto`web`.`common_member`(`uid`,`email`,`username`,`password)values(new.uid,new.email,new.username,new.password);
end|
delimiter;
說明:當member資料庫庫下的common_member資料表更新,則觸發該事件把資料同步更新到web資料庫下common_member表中。簡單說就是當member資料庫庫下的common_member資料表更新時同步更新web資料庫下common_member表。

可以在mysql的命令列模式下建立觸發器,也可以利用mysql管理軟體建立,常見的有:
1、SQLyog串連本機資料庫成功後,我們可以在資料表上右擊選擇“CreateTrigger…”或右鍵Triggers,選擇CreateTrigger…,這裡不再過多贅述,適合windows系列系統)
2、Navicat選擇資料表--設計表--觸發器,這裡不再過多贅述,適合windows系列系統)

本文出自 “redpaopaw” 部落格,請務必保留此出處http://redpaopaw.blog.51cto.com/7900594/1296745

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.