mysql update触发器 state改变时添加日志

mysql的触发器功能十分强大,这里主要是使用触发器来为状态的改变添加日志
首先这里有一个学生的表
mysql
学生表中的状态字段有3个参数分别为1正常 2请假 3退学
还有一个学生的日志表
mysql
用于存放学生表的日志
这里我要在student表添加一个触发器用于监听表中的state字段发生变化的时候就添加一条日志
mysql
定义的内容为:

begin
	if new.state!=old.state then
    insert into student_log (student_id,value,create_time)
    values(new.student_id,concat(
    CASE old.state
    WHEN 1 THEN "正常"
    WHEN 2 THEN "请假"
    WHEN 3 THEN "退学"
    END
    ,"=>",
    CASE new.state
    WHEN 1 THEN "正常"
    WHEN 2 THEN "请假"
    WHEN 3 THEN "退学"
    END
    ),now());
    end if; 
end

(这里的old为修改前表的内容new为修改后表的内容)
保存后现在我们来修改一下学生表中一条数据的状态字段,就可以在学生日志表中看到有日志添加
mysql
将状态1改为2,即正常状态改为请假状态
student_log表中对应自动添加了日志
mysql

MySQL数据库从入门到实战应用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值