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启动触发器_MYSQL中禁用/启动触发器相关推荐
- win7禁用手机便携式设备_在便携式Firefox(和其他便携式应用)中禁用启动屏幕...
win7禁用手机便携式设备 Portable applications are cool because you can run them on any machine from your thumb ...
- mysql命令行查看表的触发器_Mysql事项,视图,函数,触发器命令(详解)
事项开启和使用 //修改表的引擎 alter table a engine=myisam; //开启事务 begin; //关闭自动提交 set autocommit=0; //扣100 update ...
- mysql自定义存储过程_MySQL自定义函数、触发器、存储过程
存储过程 概念 存储过程,是一个数据库对象,类似一个函数. 在存储过程中可以使用SQL中的绝大部分内容,并且可以加入编程语言的特性(循环判断分支). 编写好存储过程之后,可以在客户端调用存储过程,存储 ...
- mysql校对规则_MySQL中的校对规则
详解MySQL中的校对规则 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is ...
- mysql提取数字_Mysql中实现提取字符串中的数字的自定义函数分享
因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代 ...
- mysql 关联索引_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...
情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a, a,b a,b, ...
- mysql range用法_MySQL中Explain的用法总结(详细)
本篇文章给大家带来的内容是关于MySQL中Explain的用法总结(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 执行计划(query Execution plan) 语法e ...
- mysql join图解_MySQL中Join算法实现原理分析[多图]
在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join.顾名思义,Nes ...
- mysql getnum函数_Mysql中实现提取字符串中的数字的自定义函数分享
因需要在MysqL的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的MysqL函数,可以有效的从字符串中提取出数字. 该MysqL提取出字符串中的数字函数如下: CREATE ...
最新文章
- Yarn基本架构和工作机制
- 基于struts2,hibernate的小javaweb项目
- Python Tools for Machine Learning
- HDU2021 发工资咯
- 打通docker api
- 定义一个数组返回最大子数组的值(1)
- 使用日志审计查看MaxCompute执行过哪些操作
- 240多个jquery插件
- 安装meme_新的Meme订单:通过简单的浏览器缓存更改游戏
- 批处理定时执行任务_如何让你的西门子Wincc V14,每天定时自动执行某任务
- 使用Micrisoft.net设计方案 第三章Web表示模式 Web模式集群详细介绍 Observer(观察器)...
- 【心得】Web设计师应参考的技术
- 【python入门到实践1】简介和环境搭建
- 搜索引擎优化主要对网站哪些方面做优化
- linux -shell编程-循环语句
- 学习大数据可以进入哪些公司?
- Ceph分布式存储知识总结
- mini,minis2,御2,御pro可以飞航线,飞跟随
- 编写代码的软件用什么编写的_您到底是为谁编写代码?
- 手把手搭建springcloud微服务,使用Eureka
热门文章
- python中acosh_带有Python示例的math.acosh()方法
- 被一个熟悉的面试题问懵了:StringBuilder 为什么线程不安全?
- Debian11镜像更新为阿里巴巴开源镜像站镜像,切换root用户,解决用户名不在sudoers文件中此事将被报告,Debian11 文件夹对话框、火狐浏览器、命令终端等没有最大化和最小化
- python http 返回json中文乱码
- 微信开发4——PHP实现PC扫码授权登陆获取用户信息
- C#中使用SqlBulk百万级数据秒级插入
- C#中其他简单LINQ查询表达式的简单使用介绍
- m1笔记本android开发,Apple M1设备开发Android小tips
- mysql count count id_mysql 为什么count(*)快于count(id)
- 4列变成5列 datatable_云南美食界“5巨头”,谁才是NO.1?你家乡的那道菜也在列...