在mysql中,可以使用DROP TRIGGER語句來取消已經(jīng)定義的觸發(fā)器,語法為“DROP TRIGGER 表名.觸發(fā)器名;”或者“DROP TRIGGER 觸發(fā)器名; ”,觸發(fā)器的名稱在當(dāng)前數(shù)據(jù)庫中必須具有唯一的名稱;“表名”選項(xiàng)若不省略則表示取消與指定表關(guān)聯(lián)的觸發(fā)器。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
MySQL 的觸發(fā)器和存儲(chǔ)過程一樣,都是嵌入到 MySQL 中的一段程序,是 MySQL 中管理數(shù)據(jù)的有力工具。不同的是執(zhí)行存儲(chǔ)過程要使用 CALL 語句來調(diào)用,而觸發(fā)器的執(zhí)行不需要使用 CALL 語句來調(diào)用,也不需要手工啟動(dòng),而是通過對(duì)數(shù)據(jù)表的相關(guān)操作來觸發(fā)、激活從而實(shí)現(xiàn)執(zhí)行。比如當(dāng)對(duì) student 表進(jìn)行操作(INSERT,DELETE 或 UPDATE)時(shí)就會(huì)激活它執(zhí)行。
觸發(fā)器與數(shù)據(jù)表關(guān)系密切,主要用于保護(hù)表中的數(shù)據(jù)。特別是當(dāng)有多個(gè)表具有一定的相互聯(lián)系的時(shí)候,觸發(fā)器能夠讓不同的表保持?jǐn)?shù)據(jù)的一致性。
在 MySQL 中,只有執(zhí)行 INSERT、UPDATE 和 DELETE 操作時(shí)才能激活觸發(fā)器,其它 SQL 語句則不會(huì)激活觸發(fā)器。
那么已經(jīng)定義的觸發(fā)器怎么取消(刪除)?
在MySQL中,可以使用 DROP TRIGGER 語句可以刪除 MySQL 中已經(jīng)定義的觸發(fā)器。
DROP TRIGGER 觸發(fā)器名; //或 DROP TRIGGER 表名.觸發(fā)器名;
例如,如果要?jiǎng)h除與employees表關(guān)聯(lián)的 before_employees_update觸發(fā)器,可以執(zhí)行以下語句:
DROP TRIGGER employees.before_employees_update;
【實(shí)例】刪除 double_salary 觸發(fā)器
DROP TRIGGER double_salary;
刪除 double_salary 觸發(fā)器后,再次向數(shù)據(jù)表 tb_emp6 中插入記錄時(shí),數(shù)據(jù)表 tb_emp7 的數(shù)據(jù)不再發(fā)生變化
INSERT INTO tb_emp6 VALUES (3,'C',1,200);
SELECT * FROM tb_emp6;
SELECT * FROM tb_emp7;
【