1. 程式人生 > >MySQL基礎系列之 觸發器

MySQL基礎系列之 觸發器

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;