您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Mysql中怎么禁用與啟動觸發器,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1.新建兩張表:
表demo_1:
CREATE TABLE `demo_1` ( `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵', `STUNAME` varchar(32) DEFAULT NULL COMMENT '名字', `AGE` tinyint(4) DEFAULT NULL COMMENT '年齡', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
表:demo_2
CREATE TABLE `demo_2` ( `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵', `STU_ID` int(11) DEFAULT NULL COMMENT '學生編號', `MATH` double DEFAULT NULL COMMENT '成績', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
2.然后給demo_1創建一個觸發器
DROP TRIGGER IF EXISTS `insertTragger`; DELIMITER ;; CREATE TRIGGER `insertTragger` AFTER INSERT ON `demo_1` FOR EACH ROW begin select ID INTO @v1 from demo_1 order by ID desc limit 1; Insert into demo_2(STU_ID, MATH) values(@v1, 98.5); end ;; DELIMITER ;
3.觸發器是:在demo_1中添加一條數據時,demo_2中自動添加一條數據。
4.但是我不想每次出入數據都觸發觸發器呢,只有在我想觸發的時候才觸發。
重新編寫觸發器:
DROP TRIGGER IF EXISTS `insertTragger`; DELIMITER ;; CREATE TRIGGER `insertTragger` AFTER INSERT ON `demo_1` FOR EACH ROW begin if @enable_trigger = 1 then select ID INTO @v1 from demo_1 order by ID desc limit 1; Insert into demo_2(STU_ID, MATH) values(@v1, 98.5); end if; end ;; DELIMITER ;
5.調用觸發器
SET @enable_trigger = 1; INSERT INTO demo_1(STUNAME , AGE) VALUES(‘小強', 17); 執行之后,表demo_1中增加一條數據 2 小強 17 表demo_2中同樣也增加一條數據 2 2 98.5
6.禁用觸法器
SET @enable_trigger = 0; INSERT INTO demo_1(STUNAME , AGE) VALUES(‘小強', 17); 執行之后: 執行之后,表demo_1中增加一條數據 2 小強 17
看完上述內容,你們對Mysql中怎么禁用與啟動觸發器有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。