MySQL筆記:觸發器
阿新 • • 發佈:2018-03-16
pan closed format ger 筆記 form rop 解決 -a
一、基礎知識
觸發器是由INSERT、UPDATE和DELETE等事件觸發的某種特定操作。
當滿足觸發器的觸發條件時,數據庫系統就會執行觸發器中定義的程序語句。
二、創建
FOR EACH ROW表示任何一條記錄上的操作滿足觸發事件都會觸發。
MySQL默認以分號作為執行語句的結束,在創建觸發器的過程中需要用到分號。為了解決該問題需要用到DELIMITER語句將結束符變成其他符號,創建完成後再將結束符變回分號。
CREATE DATABASE MYDB; USE MYDB; CREATE TABLE STUDENT ( NUMBER INT NOT NULL PRIMARYView CodeKEY, NAME CHAR(20) NOT NULL ); CREATE TABLE INSERT_TIMELINE ( INSERT_TIME DATETIME NOT NULL ); CREATE TABLE DELETE_TIMELINE ( DELETE_TIME DATETIME NOT NULL ); CREATE TRIGGER INSERT_TRIGGER AFTER INSERT ON STUDENT FOR EACH ROW INSERT INTO INSERT_TIMELINE VALUES (NOW()); #創建一個執行語句的觸發器 DELIMITER&& CREATE TRIGGER DELETE_TRIGGER AFTER DELETE ON STUDENT FOR EACH ROW BEGIN INSERT INTO DELETE_TIMELINE VALUES (NOW()); INSERT INTO DELETE_TIMELINE VALUES (NOW()); END && DELIMITER ; #創建多個執行語句的觸發器 DROP DATABASE MYDB;
三、查看
SHOW TRIGGERS; #無法查詢指定觸發器 SELECTView Code* FROM information_schema.TRIGGERS; #查詢所有觸發器 SELECT * FROM information_schema.TRIGGERS WHERE TRIGGER_NAME = ‘INSERT_TRIGGER‘; #查詢指定觸發器 SELECT * FROM information_schema.TRIGGERS WHERE TRIGGER_NAME = ‘DELETE_TRIGGER‘;
四、刪除
DROP TRIGGER INSERT_TRIGGER; DROP TRIGGER DELETE_TRIGGER;View Code
MySQL筆記:觸發器