MySQL15-触发器

本文介绍了MySQL触发器的基本概念,包括触发器的事件类型、触发时间和触发对象等,并详细讲解了如何创建触发器,提供了具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不建议使用,参考这里

1.概述

触发器trigger:事先为某张表绑定好一段代码,当表中的某些内容发生改变的时候(增删改),系统自动触发代码执行。

  • 事件类型:增insert,删delete,改update三种类型。
  • 触发时间:前before,后after。
  • 触发对象:表中的每一条记录(行)。

在一张表中,同样触发时间同样类型的触发器只能有一个,所以一张表中最多有6个触发器(BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE)。

2.创建触发器

MySQL高级结构中没有大括号,用字符 begin,end 代替。

# 创建触发器
CREATE TRIGGER trigger_name
trigger_time
trigger_event ON table_name
FOR EACH ROW
trigger_stmt

# BEGINEND 语句的语法:
BEGIN
[statement list]
END

trigger_name:触发器名称,用户自行指定;
trigger_time:触发时机,BEFORE 或 AFTER;
trigger_event:触发事件,INSERT、UPDATE 或 DELETE;
table_name:在哪张表上建立触发器;
trigger_stmt:触发器程序体,可以是一条 SQL 语句,或者用 BEGIN 和 END 包含的多条语句。

示例,先通过 DELIMITER 临时修改分隔符,这样就可以在触发器定义中使用分号:

DELIMITER //

CREATE TRIGGER pseudohash_crc_ins
BEFORE INSERT
ON pseudo_hash
FOR EACH ROW
BEGIN
SET NEW.url_crc = CRC32(NEW.url);
END;
//

CREATE TRIGGER pseudohash_crc_upd
BEFORE UPDATE
ON pseudo_hash
FOR EACH ROW
BEGIN
SET NEW.url_crc = CRC32(NEW.url);
END;
//

DELIMITER ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值