当前位置: 首页 > 建站技术 > 数据库 > MySQL > 正文

  • 标签
  • 源码
  • 特效
  • Mysql中禁用与启动触发器教程【推荐】

    在使用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`)
    ) 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

    表demo_2中没有增加任何数据

    以上就解决了触发器的灵活调用。

    总结

    以上所述是小编给大家介绍的Mysql中禁用与启动触发器教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    关注创业、电商、站长,扫描方便乐网站微信二维码,定期抽大奖。

    【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至2723741405@qq.com,我们将及时沟通与处理。本站内容除非来源注明方便乐,否则均为网友转载,涉及言论、版权与本站无关。

    本文永久链接:http://www.fangbianle.com/news/show-255087.html

      • 图文推荐
  • 营销
  • 创业
  • 电商
  • 微商
  • 销售的这些不良习惯你中招了么?及早改吧
    一份完美的营销推广方案是这样出炉的
    如何在朋友圈进行营销?
    关键词不知道怎么分布?别怕小编来教您
    客户连机会都不愿意给?初见“三十秒”就可以解决不会让你失望
    剖析互联网营销,形成利益最大化
    想成为一把能打开客户心锁的钥匙,这样做?
    营销策划:有机会我们就抓住机会,没有机会我们就创造机会