MySQL中的触发器(trigger)

触发器(trigger)是个特殊的存储过程,不同的是,执行存储过程要使用CALL语句来调用,而触发器的执行不需要使用CALL,也不需要手动启动,当一个预定义的事件发生的时候,就会被MySQL自动调用。

创建触发器

创建一个执行语句的触发器
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
参数含义
trigger_name表示触发器名称,用户自行指定
trigger_time触发时机,可以指定为before或after
trigger_event表示触发事件,包括INSERT、UPDATE、DELETE
tbl_name建立触发器的表名
trigger_stmt触发器执行语句

例:

CREATE TABLE account(acc_num INT,amount DECIMAL(10,2));
CREATE TRIGGER ins_sum BEFORE INSERT ON account
    FOR EACH ROW SET @sum=@sum+NEW.amount;
创建有多个执行语句的触发器
CREATE TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW
    BEGIN
    语句执行列表
    END
参数含义
trigger_name表示触发器名称,用户自行指定
trigger_time触发时机,可以指定为before或after
trigger_event表示触发事件,包括INSERT、UPDATE、DELETE
tbl_name建立触发器的表名
触发器程序可以使用BEGIN和END作为开始和结束,中间包含多条语句

查看触发器

SHOW TRIGGERS查看
mysql> SHOW TRIGGERS;

SHOW TRIGGERS语句查看当前创建的所有触发器信息,在触发器较少的情况下,使用该语句会很方便。如果要查看特定触发器信息,可以直接从information_schema数据库中的表triggers中查找。

在triggers表中查看
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE condition;

删除触发器

DROP TRIGGER[schema_name.] trigger_name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盛者无名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值