MYSQL根据表值更改值(约束或触发?)

时间:2013-04-30 22:52:54

标签: mysql mysql-workbench unique-constraint triggers event-triggers

关于MYSQL语法的快速几个问题,似乎很难在谷歌上找到这些答案。是否可以设置约束或触发器,以便当列的值达到某个点时,它将被重置并执行其他操作。或者,如果说hourLog大于零,则许可证状态从默认值INVALID更改为有效。

我知道所有这些都可以通过使用数据库的程序来完成,但是如果有MYSQL命令通过触发器或约束自动执行此操作,那就太好了。

对不起,如果发布了这个,我只是在寻找一个课程的快速说明。

1 个答案:

答案 0 :(得分:1)

你可以使用这两个触发器,一个用于UPDATE,一个用于INSERT:

CREATE TRIGGER upd_yourtable BEFORE UPDATE ON yourtable 
FOR EACH ROW
  SET new.licenseStatus=
      CASE WHEN new.hourLog>0 THEN 'Valid' ELSE 'INVALID' END
;

CREATE TRIGGER ins_yourtable BEFORE INSERT ON yourtable 
FOR EACH ROW
  SET new.licenseStatus=
      CASE WHEN new.hourLog>0 THEN 'Valid' ELSE 'INVALID' END
;

请参阅小提琴here

相关问题