MySQL必知必会——触发器、事务处理

本文详细介绍了MySQL中的触发器和事务处理。触发器包括INSERT、DELETE和UPDATE触发器,用于在特定事件发生时自动执行相关操作。文章讨论了如何创建、删除和使用触发器,并举例说明了各种触发器的应用场景。接着,文章阐述了事务处理的概念和ACID原则,解释了如何通过BEGIN、COMMIT、ROLLBACK和SAVEPOINT来控制事务,确保数据库的完整性和一致性。
摘要由CSDN通过智能技术生成

一、触发器

1、概念相关

如果想要某条语句在事件发生时自动执行那么就要用到触发器,触发器是数据库表的属性,是一个特殊的存储过程,但是触发器不需要CALL语句调用,也不需要手动启动。它由事件触发,事件包括INSERT,UPDATE和DELETE语句,当表中出现这些特定事件时,将激活该对象 。
除此之外的其他MySQL语句不支持触发器。

2、创建触发器

触发器创建的四个要素

  • 唯一的触发器名称
  • 触发器关联的表
  • 触发器应该响应的活动
  • 触发器何时执行

触发器创建使用CREATE TRIGGER语句

CREATE TRIGGER newproduct AFTER INSERT ON  products
FOR EACH ROW SELECT 'Product added';

此时报错:Not allowed to return a result set from a trigger
解决方法:加上 into @arg,因为从MySQL5以后不支持触发器返回结果集

CREATE TRIGGER newproduct AFTER INSERT ON  products
FOR EACH ROW SELECT 'Product added' into @arg;

在这里插入图片描述
CREATE TRIGGER用来创建名为newproduct的触发器,触发器在一个操作发生之前或之后执行,这列给出了AFTER INSERT,所以此触发器将在INSERT语句成功执行后执行,这个触发器还指定FOR EACH ROW,因此代码对插入的每行都执行。该例中,文本Product added将对每个插入的行显示一次。

触发器只在操作对象为表时才能使用,视图和临时表都不支持。
触发器按照每个表每个事件每次地定义,每个表每个时间每次只允许一个触发器。因此每个表最多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值