MySQL基础 -- 触发器

目录

一 、触发器的介绍

        1、定义

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

3、触发器和存储过程

二、语法

1、简单语法

2、判断条件后调用

3、update触发器


一 、触发器的介绍

1、定义:监控某种情况,然后触发某些操作,是特殊的存储过程(由事件触发)

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

  • 监控地点(table)
  • 监控事件(insert/delete/update)
  • 触发时间(after/before)
  • 触发事件(insert/delete/update)

3、触发器和存储过程

  • 触发器是事件触发,在无形中增加了数据库的复杂度,非DBA人员难以理解;而存储过程是显性调度;
  • 触发器容易出现死锁,而且对性能也没提升多少;
  • 存储过程和触发器都难以开发和维护,并且不能高效移植;
  • 触发器可用事务替代,存储过程可用后端脚本替代;

二、语法

1、简单语法

create trigger 触发器名
[after/before] [insert/delete/update] on 表名
for each row
触发器执行的语句块  

2、判断条件后调用

if 判断条件 then 
    SQL语句
end if

假如判断条件为 插入时间大于20小时,即

Hour(new.RecordTime)='20'

#RecordTime是date类型,如‘2016-08-12 20:12:08’

#判断日期为某天或者某年某月
date_format(new.Recordtime,'%Y-%m-%d'

3、update触发器

题目:当插入消费数据时,按小时统计学生的消费金额、用电量等

after insert on 表 for each row
begin 
    update stucosthyhour//更新学生每小时花费金额
    set hourcost = hourcost + new.cost//
    where (timejd = hour(new.recordtime) + 1) 
    and date_format(new.recordtime,'%Y-%m-%d')=date_format(RecordTime,'%Y-%m-%d');
end

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值