我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

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

目录

  • SQL语句
  • 示例

SQL语句

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

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

在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

示例

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 ;

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

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

本文更新于2019-06-23,使用MySQL 5.7,操作系统为Deepin 15.4。目录SQL语句示例SQL语句为了便于描述,此处将创建触发器的DDL复述一次,其已于“SQL”章节描述。CREATE TRIGGER triggername BEFORE|
MySQL学习笔记(12):触发器
2021-06-20

MySQL学习笔记

作者: Grey原文地址:MySQL学习笔记说明注:本文中的SQL语句如果用到了特定方言,都是基于MySQL数据库。关于DDLDDL 的英文全称是 Data Definition Language,中文是数据定义语言。它定义了数据库的结构和数据表的结构。在 D
MySQL学习笔记
2015-01-17

MySQL 学习笔记 (一)

1.InnoDB and Online DDLALTER TABLE tbl_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE;https://dev.mysql.com/doc/refma
2016-12-04

MySQL 学习笔记(五)

mysqldump 与 --set-gtid-purged 设置(1)  mysqldumpThe mysqldump client utility performs logical backups, producing a set of SQL statem
MySQL 学习笔记(五)
2022-01-27

MySQL学习笔记-day01

1、数据库概述及数据准备1.1、SQL概述SQL,全称Structured Query Language,SQL用来和数据库打交道,完成和数据库的通信,SQL是一套标准。(90%以上的SQL都是通用的)。SQL:结构化语言,是一门标准通用的语言。SQL属于高级
MySQL学习笔记-day01
2017-10-15

MySQL学习笔记-day03

1、约束1.1、唯一性约束(unique)唯一性约束修饰的字段具有唯一性,不能重复。但可以为NULL。案例:给某一列添加uniquedrop table if exists t_user;create table t_user( id int, u
MySQL学习笔记-day03
2020-11-18

MySQL学习笔记(17):MySQL Utilities

本文更新于2020-04-05,使用MySQL 5.7,操作系统为Deepin 15.4。目录安装分类mysqldbcompare——数据库比较工具mysqldbcopy——数据库复制工具mysqldiff——数据库对象定义比较工具mysqldiskusage
MySQL学习笔记(17):MySQL Utilities
2015-05-06

MySQL学习笔记(3):SQL

本文章更新于2020-06-14,使用MySQL 5.7,操作系统为Deepin 15.9。目录DDL语句创建数据库删除数据库修改数据库创建表删除表修改表创建索引删除索引创建视图修改视图删除视图存储过程和函数创建事件修改事件删除事件创建触发器删除触发器DML语
MySQL学习笔记(3):SQL
2022-04-25

学习笔记:MYSQL查询

前言:之前花费两天晚上看了一遍Mysql必知必会,没想到后面效果太差。不如跟着网课视频敲一遍和完成练习题目(练习题没写注释就不记录了),再记下笔记。一、基本的查询select语句语法: select 查询列表 from 表名;查询列表可以是表中的字段、常量值、
学习笔记:MYSQL查询
2015-12-27

mysql学习笔记二 DQL

-- 查询编号为1004的学生的姓名和生日 select name,birthday from student where id=1004;-- 查询年龄大于18的学生信息 select * from student where age>1
mysql学习笔记二  DQL
2018-07-25

《Flask Web开发》学习笔记

前言:想熟练掌握一门web框架,为以后即将诞生的测试工具集做准备。为什么选择flask要做熟练掌握的一门框架,而不是其他的,最主要的原因是可以随意定制。  特别提醒:这本书的代码会提交在github,有基础的人可以直接看github的代码来
2023-01-30

MySQL学习笔记(9):索引

本文更新于2019-07-27,使用MySQL 5.7,操作系统为Deepin 15.4。目录能够使用索引的典型场景存在索引但不能使用索引的典型场景查看索引使用情况在创建一个n列的复合索引时,实际是创建了n个索引。可利用索引中最左边的列集来匹配行,这样的列集称
MySQL学习笔记(9):索引
2018-09-17

MySQL学习笔记(26):日志

本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。目录错误日志二进制日志查询日志慢查询日志其他日志分析工具MySQL有4种日志:错误日志、二进制日志(BINLOG)、查询日志、慢查询日志。错误日志错误日志记录了mysql
MySQL学习笔记(26):日志
2018-02-21

MySQL学习笔记(10):视图

本文更新于2019-06-22,使用MySQL 5.7,操作系统为Deepin 15.4。目录为了便于描述,此处将创建视图的DDL复述一次,其已于“SQL”章节描述。CREATE [OR REPLACE] [ALGORITHM={UNDEFINED|MERGE
MySQL学习笔记(10):视图
2015-06-23

编程热搜

目录