MySQL触发器如何创建与删除

MySQL触发器如何创建与删除

1.为什么需要触发器

有一些表是互相关联的,比如说商品表和库存表,我们对商品表的数据进行操作,那么对应的库存表还得发生变化,这样才可以保证数据的完整。如果我们是自己手动维护的话,比较麻烦。
这个时候我们可以使用触发器,创建一个触发器,让商品信息数据的插入操作自动触发库存数据的插入操作等,这样我们就不需要担心因为忘记添加库存数据而导致数据丢失了。

2.触发器概述

  • MySQL是从5.0.2版本开始支持触发器的

  • MySQL的触发器和存储过程一样都是嵌入到MySQL服务器的一段程序

  • 触发器是由某一个事件来触发某个操作,这些事件包括insert,delete,update事件

  • 若定义了触发程序,那么数据库执行这些语句的时候,就相当于事件发生,会自动激发触发器执行相应的操作

  • 如果对数据库中的表的数据进行插入等操作的时候,需要自动执行一些数据库逻辑的时候,我们可以用触发器来实现。

3.触发器的创建

3.1语法

触发器是作用在表上的,比如说我们希望表A新增一条记录的时候就触发 触发器的执行,而且还要选择触发器是在insert语句执行之前执行触发器还是之后。

  • for each row表明,每执行一次事件(insert,update或delete)就会触发一次触发器

CREATE TRIGGER 触发器名称 {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 FOR EACH ROW 触发器执行的语句块;

说明:

  • 表名:表示触发器监控的对象。

  • BEFORE|AFTER:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。

  • INSERT|UPDATE|DELETE:表示触发的事件。

    • INSERT 表示插入记录时触发;

    • UPDATE 表示更新记录时触发;

    • DELETE 表示删除记录时触发。

  • 触发器执行的语句块:可以是单条SQL语句,也可以是由BEGIN…END结构组成的复合语句块。

3.2 案例演示

先准备表

CREATE TABLE test_trigger (id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(30));CREATE TABLE test_trigger_log (id INT PRIMARY KEY AUTO_INCREMENT,t_log VARCHAR(30));

要求:创建触发器:创建名称为before_insert的触发器,向test_trigger数据表插入数据之前,向test_trigger_log数据表中插入before_insert的日志信息。
MySQL触发器如何创建与删除
MySQL触发器如何创建与删除

4.查看触发器

  • 查看触发器是查看数据库中已经存在的触发器的定义,状态和语法信息等

  • 方式一:查看当前数据库的所有触发器的定义

show triggersG 注意,在SQLyog中,不能加上G

MySQL触发器如何创建与删除

  • 方式二:查看当前数据库中某一个触发器的定义

show create trigger 触发器名

MySQL触发器如何创建与删除

  • 方式三:从系统库information_schema的TRIGGERS表中查询“salary_check_trigger”触发器的信息

SELECT * FROM information_schema.TRIGGERS;

5.删除触发器

触发器也是数据库对象,触发器也是用drop语句来删除

drop trigger if exists 触发器名;

关于“MySQL触发器如何创建与删除”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

文章标题:MySQL触发器如何创建与删除,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/26852

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云亿速云认证作者
上一篇 2022年9月18日 下午10:47
下一篇 2022年9月18日 下午10:48

相关推荐

  • internet中怎么达到共享传输线路的目的

    internet中主要采用路由技术来达到共享传输线路的目的;路由技术主要是指路由选择算法、因特网的路由选择协议的特点及分类,其中路由选择算法可以分为静态路由选择算法和动态路由选择算法,因特网的路由选择协议的特点是属于自适应的选择协议,是分布式路由选择协议,采用分层次的路由选择协议。 本教程操作环境:…

    2022年8月30日
    15100
  • MySQL索引最左匹配原则是什么

    准备 为了方面后续的说明,我们首先建立一个如下的表(MySQL5.7),表中共有5个字段(a、b、c、d、e),其中a为主键,有一个由b,c,d组成的联合索引,存储引擎为InnoDB,插入三条测试数据。强烈建议自己在MySQL中尝试本文的所有语句。 CREATE TABLE `test` ( `a`…

    2022年9月8日
    5.4K00
  • uniapp地图组件map怎么使用

    首先引入map组件 <template> <view class=”content”> <map :layer-style=’5′ : :show-location=’true’ :latitude=”latitude” :longitude=”longitude” :…

    2022年9月20日
    30200
  • 使用ZoomEye寻找APT攻击的示例分析

    ZoomEye线上的数据是覆盖更新的模式,也就是说第2次扫描如果没有扫描到数据就不会覆盖更新数据,ZoomEye上的数据会保留第1次扫描获取到的banner数据,这个机制在这种恶意攻击溯源里其实有着很好的场景契合点:恶意攻击比如Botnet、APT等攻击使用的下载服务器被发现后一般都是直接停用抛弃,…

    2022年9月2日
    24000
  • 数据库mdf文件怎么打开

    数据库mdf文件打开方法: 1、找到要打开的数据库文件。 2、用sql server进行打开。 3、开启后点击“连接”。 4、进入管理页面。 5、右击数据库选择“附加”功能。 6、进入“附加数据库”。 7、点击“添加”选择要附加的数据库。 8、选中添加数据库点击“确定”。 9、开启后就可看到所有数据…

    2022年9月8日
    1.2K00
  • php unserialize反序列化漏洞分析

    题目如下: 漏洞解析: (上图代码第11行正则表达式应改为:’/O:d:/’) 题目考察对php反序列化函数的利用。在第10行 loadData() 函数中,我们发现了 unserialize 函数对传入的 $data 变量进行了反序列。在反序列化前,对变量内容进行了判断,先…

    2022年8月30日
    43700
  • windows驱动精灵drivergenius删不了如何解决

    解决方法: 1、右击桌面任务栏,点击“任务管理器”。 2、右击“drivergenius”,选择“结束任务”。 3、右击此电脑,选择“管理”。 4、点击“服务和应用程序”的下拉,选择“服务”。 5、在右侧文件中找到“Drivergenius core service”双击打开。 6、将“启动类型”改…

    2022年9月10日
    25300
  • mac地址是不是物理地址

    mac地址是物理地址;mac地址的全称是“Media Access Control Address”,意为媒体存取控制位址,代表媒体访问控制,也称为物理地址或硬件地址,为网络上的每个设备提供少数标识符,由一个48位或64位地址组成。 本教程操作环境:windows10系统、DELL G3电脑。 ma…

    2022年9月8日
    36500
  • mysql中有没有关键字

    mysql中有关键字。mysql中提供了多种关键字:1、BETWEEN,用在WHERE语句之后的时间或者数字的范围查询;2、CALL,用于调用存储过程;3、CURRENT_DATE,获取当天日期;4、CURRENT_TIME,获取当前时间;5、CURRENT_USER,返回MYSQL的用户名;6、C…

    2022年9月22日
    19500
  • SQL字符串的合并与拆分实例代码分析

    字符串的合并 在Oracle中可能有多种实现方法,目前我已知的有两种,下面记录下这两种的实现: 字符串合并方法一: 实现SQL: –方法一SELECT d.dept_name,wm_concat(e.emp_name) FROM employee eINNER JOIN department d …

    2022年9月1日
    26400
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部