广告
返回顶部
首页 > 资讯 > 数据库 >浅谈MySQL触发器的原理以及使用
  • 678
分享到

浅谈MySQL触发器的原理以及使用

MySQL触发器MySQL触发器原理 2023-05-20 10:05:52 678人浏览 八月长安
摘要

目录Mysql 触发器触发程序的优点如下:mysql 触发器 Mysql 数据库中触发器是一个特殊的存储过程,不同的是执行存储过程要使用 CALL 语句来调用,而触发器的执行不需要使用 CALL 语句来调用,也不需要手工

mysql 触发器

Mysql 数据库中触发器是一个特殊的存储过程,不同的是执行存储过程要使用 CALL 语句来调用,而触发器的执行不需要使用 CALL 语句来调用,也不需要手工启动,只要一个预定义的事件发生就会被 MySQL自动调用。

引发触发器执行的事件一般如下:

  • 增加一条学生记录时,会自动检查年龄是否符合范围要求。
  • 每当删除一条学生信息时,自动删除其成绩表上的对应记录。
  • 每当删除一条数据时,在数据库存档表中保留一个备份副本。

触发程序的优点如下:

  • 触发程序的执行是自动的,当对触发程序相关表的数据做出相应的修改后立即执行。
  • 触发程序可以通过数据库中相关的表层叠修改另外的表。
  • 触发程序可以实施比 FOREIGN KEY 约束、CHECK 约束更为复杂的检查和操作。

触发器与表关系密切,主要用于保护表中的数据。特别是当有多个表具有一定的相互联系的时候,触发器能够让不同的表保持数据的一致性。

在 MySQL 中,只有执行 INSERT、UPDATE 和 DELETE 操作时才能激活触发器。

在实际使用中,MySQL 所支持的触发器有三种:INSERT 触发器、UPDATE 触发器和 DELETE 触发器。

1) INSERT 触发器

在 INSERT 语句执行之前或之后响应的触发器。

使用 INSERT 触发器需要注意以下几点:

  • 在 INSERT 触发器代码内,可引用一个名为 NEW(不区分大小写)的虚拟表来访问被插入的行。
  • 在 BEFORE INSERT 触发器中,NEW 中的值也可以被更新,即允许更改被插入的值(只要具有对应的操作权限)。
  • 对于 AUTO_INCREMENT 列,NEW 在 INSERT 执行之前包含的值是 0,在 INSERT 执行之后将包含新的自动生成值。

2) UPDATE 触发器

在 UPDATE 语句执行之前或之后响应的触发器。

使用 UPDATE 触发器需要注意以下几点:

  • 在 UPDATE 触发器代码内,可引用一个名为 NEW(不区分大小写)的虚拟表来访问更新的值。
  • 在 UPDATE 触发器代码内,可引用一个名为 OLD(不区分大小写)的虚拟表来访问 UPDATE 语句执行前的值。
  • 在 BEFORE UPDATE 触发器中,NEW 中的值可能也被更新,即允许更改将要用于 UPDATE 语句中的值(只要具有对应的操作权限)。
  • OLD 中的值全部是只读的,不能被更新。

注意:当触发器设计对触发表自身的更新操作时,只能使用 BEFORE 类型的触发器,AFTER 类型的触发器将不被允许。

3) DELETE 触发器

在 DELETE 语句执行之前或之后响应的触发器。

使用 DELETE 触发器需要注意以下几点:

  • 在 DELETE 触发器代码内,可以引用一个名为 OLD(不区分大小写)的虚拟表来访问被删除的行。
  • OLD 中的值全部是只读的,不能被更新。

总体来说,触发器使用的过程中,MySQL 会按照以下方式来处理错误。

若对于事务性表,如果触发程序失败,以及由此导致的整个语句失败,那么该语句所执行的所有更改将回滚;对于非事务性表,则不能执行此类回滚,即使语句失败,失败之前所做的任何更改依然有效。

若 BEFORE 触发程序失败,则 MySQL 将不执行相应行上的操作。

若在 BEFORE 或 AFTER 触发程序的执行过程中出现错误,则将导致调用触发程序的整个语句失败。

仅当 BEFORE 触发程序和行操作均已被成功执行,MySQL 才会执行AFTER触发程序。

到此这篇关于浅谈MySQL触发器的原理以及使用的文章就介绍到这了,更多相关MySQL触发器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: 浅谈MySQL触发器的原理以及使用

本文链接: https://www.lsjlt.com/news/214349.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈MySQL触发器的原理以及使用
    目录mysql 触发器触发程序的优点如下:MySQL 触发器 MySQL 数据库中触发器是一个特殊的存储过程,不同的是执行存储过程要使用 CALL 语句来调用,而触发器的执行不需要使用 CALL 语句来调用,也不需要手工...
    99+
    2023-05-20
    MySQL 触发器 MySQL触发器原理
  • 浅谈MySql 视图、触发器以及存储过程
    视图 什么是视图?视图的作用是什么? 视图(view)是一种虚拟存在的表,是一个逻辑表,它本身是不包含数据的。作为一个select语句保存在数据字典中的。 通过视图,可以展现基表(用来创建视图的表叫做基表...
    99+
    2022-05-18
    MySql 视图 MySql 触发器 MySql 存储过程
  • 浅谈一下Servlet的定义以及运行原理
    目录1.什么是servlet1.1 扩展web服务器端功能1.2 servlet组件2.如何写一个servlet?3.servlet是如何运行的?4.常见问题4.1 状态码4.2 4...
    99+
    2023-03-24
    Servlet定义 Servlet原理
  • 浅谈Java中的atomic包实现原理及应用
    1.同步问题的提出假设我们使用一个双核处理器执行A和B两个线程,核1执行A线程,而核2执行B线程,这两个线程现在都要对名为obj的对象的成员变量i进行加1操作,假设i的初始值为0,理论上两个线程运行后i的值应该变成2,但实际上很有可能结果为...
    99+
    2023-05-30
    java atomic 原理
  • 【MySQL触发器】触发器的使用、创建、修改及删除
    目录 一、什么是触发器 二、创建触发器 ①创建一个insert事件触发器 ②创建一个delete 事件触发器  三、触发器包含多条执行语句 四、查看触发器  ①SHOW TRIGGERS语句查看触发器 ②查看系统表triggers实现查看触...
    99+
    2023-09-17
    mysql 数据库 sql database
  • MySQL的触发器的原理是什么
    这期内容当中小编将会给大家带来有关MySQL的触发器的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、触发器的概念触发器(trigger)是MySQL提供给程...
    99+
    2022-10-18
  • mysql 触发器的使用及注意点
    目录前言一、触发器简介二、触发器特点及使用场景1、增强数据库的安全性2、实现数据库操作的日志审计3、实现复杂的级联操作三、触发器类似与核心参数四、触发器语法1、创建语法2、查看触发器...
    99+
    2022-11-13
    mysql 触发器使用 mysql 触发器
  • MySQL 5.6 GTID 原理以及使用
    简介        GTID是MySQL 5.6的新特性,其全称是Global Transaction Identifier,可简化MySQL的主从切换以及...
    99+
    2022-10-18
  • MySQL 触发器的使用和理解
    1.触发器是什么? 一类特殊的数据库程序,可以监视某种数据的操作(insert/update/delete),并触发相关的操作(insert/update/delete),保护数据的完整性。 个人理解就有...
    99+
    2022-05-17
    MySQL 触发器
  • mysql触发器的工作原理是什么
    MySQL触发器是一种特殊类型的存储过程,它在指定的事件发生时自动执行。触发器可以在数据库表中的数据发生更改之前、之后或替代发生更改...
    99+
    2023-10-12
    mysql
  • mysql触发器简介、创建触发器及使用限制分析
    本文实例讲述了mysql触发器简介、创建触发器及使用限制。分享给大家供大家参考,具体如下: 简介 SQL触发器是存储在数据库目录中的一组SQL语句。每当与表相关联的事件发生时,即会执行或触发SQL触发器,例...
    99+
    2022-10-18
  • MYSQL触发器的使用
    概念:触发器是一种特殊的储存过程,在满足定义条件操作时触发,并且自动执行触发器中预先设定好的定义的语句集合 触发器是特殊的储存过程 触发器是在对表操作时,满足条件就可以自动调用预先编译的sql语句 安全性 可以基于数据库的值使用户...
    99+
    2021-10-21
    MYSQL触发器的使用
  • mysql触发器原理与用法实例分析
    本文实例讲述了mysql触发器原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是触发器 创建触发器 单条触发器语句 多条触发器语句 查看触发器 删除触...
    99+
    2022-05-22
    mysql 触发器
  • mysql的存储过程和触发器的使用 以及php中的调用方法
          存储过程顾名思义,相当于一组为了完成特定功能的sql语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数...
    99+
    2022-10-18
  • MySQL触发器trigger的使用
    Q:什么是触发器?A:  触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的特性:  1、有begin end体,begin end;之间的语句可以写的简单或者复杂 ...
    99+
    2022-10-18
  • MySQL 触发器的使用及需要注意的地方
    关于触发器 现实开发中我们经常会遇到这种情况,比如添加、删除和修改信息的时候需要记录日志,我们就要在完成常规的数据库逻辑操作之后再去写入日志表,这样变成了两步操作,更复杂了。 又比如删除一个人员信息的时候,需要将他...
    99+
    2022-05-25
    MySQL 触发器
  • 【Zabbix】Zabbix触发器的告警原理及创建方法
    概述:       触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下:{<server>:<key>.<function>(&l...
    99+
    2023-06-04
  • 使用MySQL触发器的教程
    下文主要给大家带来使用MySQL触发器的教程,希望这些内容能够带给大家实际用处,这也是我编辑使用MySQL触发器的教程这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。MySQL包含对触发器的支持。触...
    99+
    2022-10-18
  • 使用mysql触发器的方法
    这篇文章主要讲解了使用mysql触发器的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。什么是触发器:触发器用来在某些操作之后,“自动”执行一些操作。(比如插入了新的学生信息...
    99+
    2022-10-18
  • MySQL触发器的使用详解
    目录1.为什么需要触发器2.触发器概述3.触发器的创建3.1语法3.2 案例演示4.查看触发器5.删除触发器总结1.为什么需要触发器 有一些表是互相关联的,比如说商品表和库存表,我们...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作