程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 建立MySQL觸發器的語法

建立MySQL觸發器的語法

編輯:MySQL綜合教程

MySQL觸發器使用CREATE TRIGGER語句,下面就對建立MySQL觸發器的語句語法進行詳細的介紹,希望對您學習MySQL觸發器有所幫助。

CREATE TRIGGER建立MySQL觸發器)語法
CREATE TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_stmt
觸發程序是與表有關的命名數據庫對象,當表上出現特定事件時,將激活該對象。

觸發程序與命名為tbl_name的表相關。tbl_name必須引用永久性表。不能將觸發程序與TEMPORARY表或視圖關聯起來。

trigger_time是觸發程序的動作時間。它可以是BEFORE或AFTER,以指明觸發程序是在激活它的語句之前或之後觸發。

trigger_event指明了激活觸發程序的語句的類型。trigger_event可以是下述值之一:
·         INSERT:將新行插入表時激活觸發程序,例如,通過INSERT、LOAD DATA和REPLACE語句。
·         UPDATE:更改某一行時激活觸發程序,例如,通過UPDATE語句。
·         DELETE:從表中刪除某一行時激活觸發程序,例如,通過DELETE和REPLACE語句。
請注意,trigger_event與以表操作方式激活觸發程序的SQL語句並不很類似,這點很重要。例如,關於INSERT的BEFORE觸發程序不僅能被INSERT語句激活,也能被LOAD DATA語句激活。

可能會造成混淆的例子之一是INSERT INTO .. ON DUPLICATE UPDATE ...語法:BEFORE INSERT觸發程序對於每一行將激活,後跟AFTER INSERT觸發程序,或BEFORE UPDATE和AFTER UPDATE觸發程序,具體情況取決於行上是否有重復鍵。

對於具有相同觸發程序動作時間和事件的給定表,不能有兩個觸發程序。例如,對於某一表,不能有兩個BEFORE UPDATE觸發程序。但可以有1個BEFORE UPDATE觸發程序和1個BEFORE INSERT觸發程序,或1個BEFORE UPDATE觸發程序和1個AFTER UPDATE觸發程序。

trigger_stmt是當觸發程序激活時執行的語句。如果你打算執行多個語句,可使用BEGIN ... END復合語句結構。這樣,就能使用存儲子程序中允許的相同語句。

以上就是建立MySQL觸發器的語法介紹。

mysql觸發器的三個示例

mysql建主從服務器的實現方法

獲取當前時間的MySql時間函數

Mysql聚合函數簡介

MySQL concat函數的使用

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved