1. 程式人生 > 實用技巧 >CNCC2020丨5G邊緣智慧與智慧城市論壇

CNCC2020丨5G邊緣智慧與智慧城市論壇

觸發器

觸發器(Trigger)是使用者定義在關係表上的一類由事件驅動的特殊過程。

為什麼使用觸發器

觸發器是被指定關聯到一個表的資料庫物件,當一個表的特定事件發生時,它將會被啟用。觸發器的特點是某條MySQL語句在特定事件發生時自動執行。引發觸發器執行的時間:

  • 增加一條學生記錄,會自動檢查年齡是否符合範圍要求。
  • 每當刪除一條學生資訊時,自動刪除其成績表上的對應記錄。
  • 每當刪除一條記錄時,在資料庫存檔表中保留一個備份副本。

觸發器與表關係密切,主要用於保護表中資料。特別是當有多個表具有一定的相互聯絡的時候,觸發器能夠讓不同的表保持資料一致性。

建立觸發器

CREATE <觸發器名> <BEFORE | AFTER>
<INSERT | UPDATE | DELETE >
ON <表名> FOR EACH Row<觸發器主體> 

建立BEFORE觸發器

CREATE TRIGGER SumOfSalary
BEFORE INSERT ON tb_emp8
FOR EACH ROW
SET @sum=@sum+NEW.salary;
SET @sum=0;
INSERT INTO tb_emp8
VAlUES(1,'A',1,1000),(2,'B',1,500);
SELECT @sum;

建立AFTER觸發器

CREATE TRIGGER double_salary
AFTER INSERT ON tb_emp6
FOR EACH ROW
INSERT ON tb_emp7
VALUES (NEW.id,NEW.name,deptId,2*NEW.salary);
INSERT INTO tb_emp6
VALUES (1,'A',1,1000),(2,'B',1.'500');
SELECT * FROM tb_emp6;

修改和刪除觸發器

DROP TRIGGER [IF EXISTS] [資料庫名] <觸發器名>
DROP TRIGGER double_salary;