Mysql触发器

本文介绍了MySQL触发器的创建方法,包括触发器的名称、时机、事件和程序体。详细讲解了如何创建六种不同类型的触发器:BEFORE INSERT、BEFORE DELETE、BEFORE UPDATE、AFTER INSERT、AFTER DELETE、AFTER UPDATE。举例说明了单条语句触发器的应用,如在数据插入时同步更新另一表的时间记录,以及多条语句触发器的使用,如在更新成绩时限制其在0到100之间。同时,提到了查看和删除触发器的操作。

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

创建触发器

CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_stmt
trigger_name:触发器的名称
tirgger_time:触发时机,为BEFORE或者AFTER
trigger_event:触发事件,为INSERT、DELETE或者UPDATE
tb_name:表示建立触发器的表明,就是在哪张表上建立触发器
trigger_stmt:触发器的程序体,可以是一条SQL语句或者是用BEGIN和END包含的多条语句
所以可以说MySQL创建以下六种触发器:
BEFORE INSERT,BEFORE DELETE,BEFORE UPDATE
AFTER INSERT,AFTER DELETE,AFTER UPDATE

单条语句的触发器
每当在sc中插入数据时就往time表中插入当前时间的数据

create trigger trig1 after insert on sc work for each row insert into time values(now());

在这里插入图片描述
创建多条语句的触发器:
在SC表更新成绩时,若成绩小于0,则更新成绩为0,若成绩大于100,则更新成绩为100

DELIMITER ||
CREATE TRIGGER upd_check BEFORE UPDATE ON SC
FOR EACH ROW
BEGIN
    IF NEW.GRADE<0 THEN
    	SET NEW.GRADE=0;
    ELSEIF NEW.GRADE>100 THEN
    	SET NEW.GRADE=100;
END IF;
END ||
DELIMITER ;

在这里插入图片描述
在这里插入图片描述
查看触发器:
show triggers;
在这里插入图片描述
删除触发器
drop trigger trig1;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值