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

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

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数据库从入门到实战应用

你可能感兴趣的:(mysql)