在使用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启动触发器_MYSQL中禁用/启动触发器相关推荐

  1. win7禁用手机便携式设备_在便携式Firefox(和其他便携式应用)中禁用启动屏幕...

    win7禁用手机便携式设备 Portable applications are cool because you can run them on any machine from your thumb ...

  2. mysql命令行查看表的触发器_Mysql事项,视图,函数,触发器命令(详解)

    事项开启和使用 //修改表的引擎 alter table a engine=myisam; //开启事务 begin; //关闭自动提交 set autocommit=0; //扣100 update ...

  3. mysql自定义存储过程_MySQL自定义函数、触发器、存储过程

    存储过程 概念 存储过程,是一个数据库对象,类似一个函数. 在存储过程中可以使用SQL中的绝大部分内容,并且可以加入编程语言的特性(循环判断分支). 编写好存储过程之后,可以在客户端调用存储过程,存储 ...

  4. mysql校对规则_MySQL中的校对规则

    详解MySQL中的校对规则 Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is ...

  5. mysql提取数字_Mysql中实现提取字符串中的数字的自定义函数分享

    因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代 ...

  6. mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  7. mysql range用法_MySQL中Explain的用法总结(详细)

    本篇文章给大家带来的内容是关于MySQL中Explain的用法总结(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 执行计划(query Execution plan) 语法e ...

  8. mysql join图解_MySQL中Join算法实现原理分析[多图]

    在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join.顾名思义,Nes ...

  9. mysql getnum函数_Mysql中实现提取字符串中的数字的自定义函数分享

    因需要在MysqL的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的MysqL函数,可以有效的从字符串中提取出数字. 该MysqL提取出字符串中的数字函数如下: CREATE ...

最新文章

  1. Yarn基本架构和工作机制
  2. 基于struts2,hibernate的小javaweb项目
  3. Python Tools for Machine Learning
  4. HDU2021 发工资咯
  5. 打通docker api
  6. 定义一个数组返回最大子数组的值(1)
  7. 使用日志审计查看MaxCompute执行过哪些操作
  8. 240多个jquery插件
  9. 安装meme_新的Meme订单:通过简单的浏览器缓存更改游戏
  10. 批处理定时执行任务_如何让你的西门子Wincc V14,每天定时自动执行某任务
  11. 使用Micrisoft.net设计方案 第三章Web表示模式 Web模式集群详细介绍 Observer(观察器)...
  12. 【心得】Web设计师应参考的技术
  13. 【python入门到实践1】简介和环境搭建
  14. 搜索引擎优化主要对网站哪些方面做优化
  15. linux -shell编程-循环语句
  16. 学习大数据可以进入哪些公司?
  17. Ceph分布式存储知识总结
  18. mini,minis2,御2,御pro可以飞航线,飞跟随
  19. 编写代码的软件用什么编写的_您到底是为谁编写代码?
  20. 手把手搭建springcloud微服务,使用Eureka

热门文章

  1. python中acosh_带有Python示例的math.acosh()方法
  2. 被一个熟悉的面试题问懵了:StringBuilder 为什么线程不安全?
  3. Debian11镜像更新为阿里巴巴开源镜像站镜像,切换root用户,解决用户名不在sudoers文件中此事将被报告,Debian11 文件夹对话框、火狐浏览器、命令终端等没有最大化和最小化
  4. python http 返回json中文乱码
  5. 微信开发4——PHP实现PC扫码授权登陆获取用户信息
  6. C#中使用SqlBulk百万级数据秒级插入
  7. C#中其他简单LINQ查询表达式的简单使用介绍
  8. m1笔记本android开发,Apple M1设备开发Android小tips
  9. mysql count count id_mysql 为什么count(*)快于count(id)
  10. 4列变成5列 datatable_云南美食界“5巨头”,谁才是NO.1?你家乡的那道菜也在列...