MySQL基礎系列之 觸發器
阿新 • • 發佈:2018-12-11
1.觸發器 是一個特殊的儲存過程,只要當一個預定義的事件發生時就會被MySQL自動呼叫
2.建立觸發器的標準語句
CREATE TRIGGER trigger_name trigger_time trigger_event
ONT tb_name FOR EACH ROW trigger_stmt;
[建立觸發器名字 觸發時間 觸發事件 在某個資料表上的每一行 觸發的程式內容]
觸發器程式可以使用BEGIN END 開始和結束程式
trigger_time:可以指定為before 或 after
trigger_event:可以指定為 INSERT、UPDATE、DELETE
trigger_stmt:是觸發程式體
3.建立只有一個執行語句的觸發器
建立測試表
CREATE TABLE account(acct_num INT, amount DECIMAL(10,2));
建立觸發器執行測試
CREATE TRIGGER ins_sum BEFORE INSERT
ON account FOR EACH ROW
SET @sum= @sum + NEW.amount;
SET @sum =0;
INSERT INTO account VALUES(1,1.00),(2,2.00);
SELECT @sum;
4.建立多個執行語句的觸發器
即是在trigger_stmt建立多個執行程式
CREATE TABLE test1(id1 INT);
CREATE TABLE test2(id2 INT);
建立觸發器執行測試
DELIMITER // CREATE TRIGGER ins_test BEFORE INSERT ON test1 FOR EACH ROW BEGIN SET @sumt= @sumt + NEW.id1; INSERT INTO test2 SET id2 = NEW.id1; END// DELIMITER ; SET @sumt =0; INSERT INTO test1 VALUES(1),(2);
5.檢視觸發器
SHOW TRIGGERS\G;
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_NAEM ='ins_test'\G;
6.刪除觸發器
DROP TIRGGER database.trigger_name;
DROP TRIGGER ins_test;