• 售前

  • 售后

热门帖子
入门百科

Mysql中禁用与启动触发器教程【保举】

[复制链接]
水月花郎稳 显示全部楼层 发表于 2021-10-26 14:07:36 |阅读模式 打印 上一主题 下一主题
在利用MYSQL过程中,常常会利用到触发器,但是偶然利用不当会造成一些麻烦。有没有一种办法可以控制触发器的调用呢?
触发器顾名思义就是数据库在肯定的调条件自动调用的SQL语句,触发器拒绝了人工调用的过程,由数据库MYSQL数据库自动的调用,执行更加高效。

如何禁用触发器呢?
1.新建两张表:
表demo_1:
  1. CREATE TABLE `demo_1` (
  2. `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  3. `STUNAME` varchar(32) DEFAULT NULL COMMENT '名字',
  4. `AGE` tinyint(4) DEFAULT NULL COMMENT '年龄',
  5. PRIMARY KEY (`ID`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
复制代码
表:demo_2
  1. CREATE TABLE `demo_2` (
  2. `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  3. `STU_ID` int(11) DEFAULT NULL COMMENT '学生编号',
  4. `MATH` double DEFAULT NULL COMMENT '成绩',
  5. PRIMARY KEY (`ID`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
复制代码
2.然后给demo_1创建一个触发器
  1. DROP TRIGGER IF EXISTS `insertTragger`;
  2. DELIMITER ;;
  3. CREATE TRIGGER `insertTragger` AFTER INSERT ON `demo_1` FOR EACH ROW begin
  4. select ID INTO @v1 from demo_1 order by ID desc limit 1;
  5. Insert into demo_2(STU_ID, MATH) values(@v1, 98.5);
  6. end
  7. ;;
  8. DELIMITER ;
复制代码
3.触发器是:在demo_1中添加一条数据时,demo_2中自动添加一条数据。
4.但是我不想每次出入数据都触发触发器呢,只有在我想触发的时候才触发。
重新编写触发器:
  1. DROP TRIGGER IF EXISTS `insertTragger`;
  2. DELIMITER ;;
  3. CREATE TRIGGER `insertTragger` AFTER INSERT ON `demo_1` FOR EACH ROW begin
  4. if @enable_trigger = 1 then
  5. select ID INTO @v1 from demo_1 order by ID desc limit 1;
  6. Insert into demo_2(STU_ID, MATH) values(@v1, 98.5);
  7. end if;
  8. end
  9. ;;
  10. DELIMITER ;
复制代码
5.调用触发器
  1. SET @enable_trigger = 1;
  2. INSERT INTO demo_1(STUNAME , AGE) VALUES(‘小强', 17);
  3. 执行之后,表demo_1中增加一条数据
  4. 2 小强 17
  5. 表demo_2中同样也增加一条数据
  6. 2 2 98.5
复制代码
6.禁用触法器
  1. SET @enable_trigger = 0;
  2. INSERT INTO demo_1(STUNAME , AGE) VALUES(‘小强', 17);
  3. 执行之后:
  4. 执行之后,表demo_1中增加一条数据
  5. 2 小强 17
复制代码
表demo_2中没有增长任何数据
以上就解决了触发器的机动调用。
总结
以上所述是小编给各人介绍的Mysql中禁用与启动触发器教程,希望对各人有所资助,假如各人有任何疑问请给我留言,小编会实时复兴各人的。在此也非常感谢各人对脚本之家网站的支持!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作