MySql觸發器


簡介:觸發器是由mysql的基本命令事件來觸發某種特定操作,這些基本命令由增,刪,改操作等事件來觸發某些特定操作。滿足觸發器的觸發條件
     時,數據庫系統就會自動執行觸發器中定義的程序語句,可以令某些操作之間的一致性得到協調。
一:創建mysql觸發器
       在mysql中創建只有一條執行語句的觸發器的形式如下。
       create trigger 觸發器名稱 before|after 觸發事件
        on 表名 for each row 執行語句;
      具體參數說明:
       a:觸發器名---指定要創建的觸發器的名稱
       b:參數before|after指定觸發器執行的時間,before指在觸發事件之前執行觸發語句,after指在觸發事件之后執行觸發語句。
       c:觸發事件參數指定數據庫操作觸發條件,包括insert,update,delete
       d:表名----指觸發時間操作的表
       e:for each row表示任何一條記錄上的操作滿足觸發事件都會觸發該觸發器。
       f:執行語句指觸發器被觸發后執行的語句。
例如:
       創建一個觸發器,當在student表中執行插入操作前,向timelog表中自動插入系統當前時間
 create trigger auto_save_ime before insert on student
 for each row
 insert into timelog(save_time) values(now());
二:創建多條執行語句的觸發器
       創建語句為:
 create trigger 觸發器名 before|after 觸發事件
 on 表名 for each row
                begin
  執行語句
 end
 將要執行的多條語句放入begin...end之間,多條語句之間需要用“;”隔開。
注意:一個表在相同的時間和相同的觸發事件只能創建一個觸發器。
三:在行級觸發器中,用:new 和:old(稱為偽記錄)來訪問數據變更前后的值。
 但要注意,INSERT語句插入一條新記錄,
 所以沒有:old記錄,而DELETE語句刪除掉一條已經存在的記錄,
 所以沒有:new記錄。UPDATE語句既有:old記錄,也有:new記錄,分別代表修改前后的記錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM