mysql的触发器功能十分强大,这里主要是使用触发器来为状态的改变添加日志
首先这里有一个学生的表
学生表中的状态字段有3个参数分别为1正常 2请假 3退学
还有一个学生的日志表
用于存放学生表的日志
这里我要在student
表添加一个触发器用于监听表中的state
字段发生变化的时候就添加一条日志
定义的内容为:
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
为修改后表的内容)
保存后现在我们来修改一下学生表中一条数据的状态字段,就可以在学生日志表中看到有日志添加
将状态1改为2,即正常状态改为请假状态
student_log
表中对应自动添加了日志
MySQL数据库从入门到实战应用