MySQL的深入浅出(七)—— 触发器

触发器

触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会激活促发其执行相应的操作。

引用场景:转账的时候一方扣钱了,那么另一方自动加钱


一、创建触发器

语法如下:

#修改命令结束标识符 delimiter 
delimiter $

create trigger tri_test1
after insert on 表名
for each row
begin 
update 表名 set num=num-new.字段名 where 字段名 =new.字段名;
end$	

delimiter ;

触发器创建语法的四要素:

要素作用
监视地点(table)基于表 ,表示对那张表进行监控
监视事件(insert/update/delete)用来监视要执行的语句
触发时间(after/before)在执行命令之后/之前执行预设好的命令
触发事件(insert/update/delete)预设的让MySQL执行的命令语句,可以使用多句sql捆绑在一起,多句sql之间用分号隔开

二、触发器的使用

1. insert语句,只有new是合法的。

示例:给order表添加订单,更新商品库存

mysql> create trigger tri_1
	-> after insert on `order`
	-> for each row
	-> begin
	-> update commodity set c_num = c_num - new.o_num where c_id = new.o_cid;
	-> end$

2. delete语句,只有old是合法的。

示例:给order表删除订单,更新商品库存

mysql> create trigger tri_2
	-> after delete on `order`
	-> for each row
	-> begin
	-> update commodity set c_num = c_num +old.o_num where c_id = old.o_cid;
	-> end$

3. update语句,new和old可以同时使用

示例:给order表更新订单,更新商品库存

mysql> create trigger tri_3
	-> after update on `order`
	-> for each row
	-> begin
	-> update commodity set c_num = c_num +old.o_num-new.o_num where c_id = old.o_cid;
	-> end$

三、查看触发器

1.使用show triggers\G 查看所有触发器
2.在数据库information_schema中通过查看触发器表,来查看触发器:使用select * from triggers\G;【当然可以以触发器名作为where条件查找数据】
3.查看触发器创建语句:show create trigger 触发器名\G;

mysql中,触发器只能查看,无法修改, 如果要修改,只能删除原有的触发器,重新创建触发器,以达到修改的目的。
使用 drop trigger 触发器名; 来删除触发器


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值