mysql触发器

1.触发器
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。SQL3的触发器是一个能由系统自动执行对数据库修改的语句。保证数据完整性。


2.新建表
假设系统中有两个表:
 班级表 class(班级号 classID, 班内学生数 stuCount)
学生表 student(学号 stuID, 所属班级号 classID)
要创建触发器来使班级表中的班内学生数随着学生的添加自动更新,代码如下:
DELIMITER $
 create trigger tri_stuInsert after insert
 on student for each row
 begin
 declare c int;
 set c =(select 班内学生数 from class where 班级号=3);
 update class set 班内学生数 =c+1 where 班级号 =3;
 end$
 DELIMITER ;




 DELIMITER $
 create trigger tri_stuInsert1 after DELETE
 on student for each row
 begin
 declare c int;
 set c=(select 班内学生数 from class where 班级号=3);
 update class set 班内学生数=c-1 where 班级号 =3;
 end$
 DELIMITER ;


DELETE from student WHERE 学号=1


DELIMITER $
 create trigger tri_stuInsert2 after 
 on student for each row
 begin
 declare c int;
 set c=(select 班内学生数 from class where 班级号=3);
 update class set 班内学生数=c-1 where 班级号 =3;
 end$
 DELIMITER ;


insert into student(学号,所属班级)VALUES(3,3);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值