CNCC2020丨5G邊緣智慧與智慧城市論壇
阿新 • • 發佈:2020-10-21
觸發器
觸發器(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;