MySQL学习笔记(12):触发器「建议收藏」

MySQL学习笔记(12):触发器「建议收藏」本文更新于2019-06-23,使用MySQL 5.7,操作系统为Deepin 15.4。 SQL语句 为了便于描述,此处将创建触发器的DDL复述一次,其已于“SQL”章节描述。 CREATE TRI

MySQL学习笔记(12):触发器

本文更新于2019-06-23,使用MySQL 5.7,操作系统为Deepin 15.4。

目录

SQL语句

为了便于描述,此处将创建触发器的DDL复述一次,其已于“SQL”章节描述。

CREATE TRIGGER triggername BEFORE|AFTER INSERT|UPDATE|DELETE
ON tablename FOR EACH ROW
statement_list

代码100分

在statement_list中使用别名OLDNEW来引用触发器中发生变化的旧记录和新记录内容。目前触发器只支持行级触发,不支持语句级触发。

触发器是行触发的,按照BEFORE触发器、行操作、AFTER触发器的顺序执行,任何一步出错都不会继续执行余下操作。如果是事务表,则会整个作为一个事务回滚。对INSERT INTO ... ON DUPLICATE KEY UPDATE ...语句,若有重复主键的记录需进行UPDATE,触发顺序为BEFORE INSERTBEFORE UPDATEAFTER UPDATE;若没有重复主键的记录直接INSERT,触发顺序为BEFORE INSERTAFTER INSERT

statement_list可以通过存储过程或函数的OUTINOUT参数将数据返回触发器,但不能调用直接RETURNS的函数。也不能显式或隐式开始或结束事务,如START TRANSACTIONCOMMITROLLBACK

示例

代码100分DELIMITER ;;

CREATE TRIGGER trigger_test BEFORE UPDATE
ON t FOR EACH ROW
BEGIN
	INSERT INTO history(old_id, old_value, new_id, new_value) VALUES (OLD.id, OLD.value, NEW.id, NEW.value);
END;;

DELIMITER ;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7535.html

(0)
上一篇 2023-03-18
下一篇 2023-03-18

相关推荐

  • sql server decode函数_怎么将时间转化为字符串

    sql server decode函数_怎么将时间转化为字符串一.字符串函数 参数character_expression:由字符数据组成的字母数字表达式,可以是常量或变量,也可以是字符列或二进制数据列 参数integer_expression:是正整数,如果

    2022-12-30
    142
  • Python工程师的职责与技能

    Python工程师的职责与技能Python是一种高级编程语言,被广泛应用于Web应用程序开发、科学计算、数据分析和人工智能等领域。Python工程师是一种非常受欢迎的职业,因为Python具有简单易学的特点,使得工程师们可以快速开发出高效可靠的软件程序。在这篇文章中,我们将介绍Python工程师的职责与技能,帮助读者更好地了解这一职业以及如何成为一名优秀的Python工程师。

    2024-06-13
    52
  • anaconda安装失败

    anaconda安装失败最近,越来越多的人在学习Python语言与相关库时开始使用anaconda。因为anaconda集成了各种常用的Python库和IDE,使得开发Python的环境配置变得十分方便。然而,一些人在安装anaconda时遇到了困难,本文将就anaconda安装失败问题进行详细的讲解。

    2024-07-22
    39
  • Oracle学习(七) — MyBatis操作、JDBC操作[亲测有效]

    Oracle学习(七) — MyBatis操作、JDBC操作[亲测有效]1、MyBatis操作 1.1、环境搭建 步骤一:创建项目 test_oracle 步骤二:修改pom.xml文件(MyBatis相关依赖、Oracle驱动、测试依赖)

    2023-03-08
    142
  • MySQL从库维护经验分享「终于解决」

    MySQL从库维护经验分享「终于解决」前言:MySQL主从架构应该是最常用的一组架构了。从库会实时同步主库传输来的数据,一般从库可以作为备用节点或作查询使用。其实不只是主库需要多关注,从库有时候也要经常维护,本篇文章将会分享几点从库维护…

    2023-04-06
    142
  • django中使用mysql的事务「建议收藏」

    django中使用mysql的事务「建议收藏」 事务简介 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。 事务用来…

    2023-02-21
    157
  • Python教程示例:动手学习

    Python教程示例:动手学习Python是一种易于学习的编程语言。以下是Python的几个基本语法示例。

    2024-03-15
    77
  • Python格式化字符串%f详解

    Python格式化字符串%f详解在Python中有很多种格式化字符串的方式,其中%f是一种常用的格式化浮点数的方法。本文将详细介绍%f的用法和注意事项,让读者完全掌握这种格式化字符串的细节。

    2024-08-10
    25

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注