关于MYSQL语法的快速几个问题,似乎很难在谷歌上找到这些答案。是否可以设置约束或触发器,以便当列的值达到某个点时,它将被重置并执行其他操作。或者,如果说hourLog大于零,则许可证状态从默认值INVALID更改为有效。
我知道所有这些都可以通过使用数据库的程序来完成,但是如果有MYSQL命令通过触发器或约束自动执行此操作,那就太好了。
对不起,如果发布了这个,我只是在寻找一个课程的快速说明。
答案 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。