做风险代理案源的网站,南京专业网站开发团队,白酒公司网站的建设,成都附近旅游景区哪里好玩在使用MYSQL过程中#xff0c;经常会使用到触发器#xff0c;但是有时使用不当会造成一些麻烦。有没有一种办法可以控制触发器的调用呢#xff1f;触发器顾名思义就是数据库在一定的调条件自动调用的SQL语句#xff0c;触发器拒绝了人工调用的过程#xff0c;由数据库MYSQ…在使用MYSQL过程中经常会使用到触发器但是有时使用不当会造成一些麻烦。有没有一种办法可以控制触发器的调用呢触发器顾名思义就是数据库在一定的调条件自动调用的SQL语句触发器拒绝了人工调用的过程由数据库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) ) ENGINEInnoDB AUTO_INCREMENT14 DEFAULT CHARSETutf8;表demo_2CREATE 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) ) ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8;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.56.禁用触法器SET enable_trigger 0;INSERT INTO demo_1(STUNAME , AGE) VALUES(‘小强’, 17);执行之后执行之后表demo_1中增加一条数据2 小强 17表demo_2中没有增加任何数据以上就解决了触发器的灵活调用。