Mysql中怎么禁用与启动触发器
今天就跟大家聊聊有关Mysql中怎么禁用与启动触发器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1.新建两张表:
表demo_1:
CREATETABLE`demo_1`(`ID`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键',`STUNAME`varchar(32)DEFAULTNULLCOMMENT'名字',`AGE`tinyint(4)DEFAULTNULLCOMMENT'年龄',PRIMARYKEY(`ID`))ENGINE=InnoDBAUTO_INCREMENT=14DEFAULTCHARSET=utf8;
表:demo_2
CREATETABLE`demo_2`(`ID`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键',`STU_ID`int(11)DEFAULTNULLCOMMENT'学生编号',`MATH`doubleDEFAULTNULLCOMMENT'成绩',PRIMARYKEY(`ID`))ENGINE=InnoDBAUTO_INCREMENT=11DEFAULTCHARSET=utf8;
2.然后给demo_1创建一个触发器
DROPTRIGGERIFEXISTS`insertTragger`;DELIMITER;;CREATETRIGGER`insertTragger`AFTERINSERTON`demo_1`FOREACHROWbeginselectIDINTO@v1fromdemo_1orderbyIDdesclimit1;Insertintodemo_2(STU_ID,MATH)values(@v1,98.5);end;;DELIMITER;
3.触发器是:在demo_1中添加一条数据时,demo_2中自动添加一条数据。
4.但是我不想每次出入数据都触发触发器呢,只有在我想触发的时候才触发。
重新编写触发器:
DROPTRIGGERIFEXISTS`insertTragger`;DELIMITER;;CREATETRIGGER`insertTragger`AFTERINSERTON`demo_1`FOREACHROWbeginif@enable_trigger=1thenselectIDINTO@v1fromdemo_1orderbyIDdesclimit1;Insertintodemo_2(STU_ID,MATH)values(@v1,98.5);endif;end;;DELIMITER;
5.调用触发器
SET@enable_trigger=1;INSERTINTOdemo_1(STUNAME,AGE)VALUES(‘小强',17);执行之后,表demo_1中增加一条数据2小强17表demo_2中同样也增加一条数据2298.5
6.禁用触法器
SET@enable_trigger=0;INSERTINTOdemo_1(STUNAME,AGE)VALUES(‘小强',17);执行之后:执行之后,表demo_1中增加一条数据2小强17
看完上述内容,你们对Mysql中怎么禁用与启动触发器有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。