0

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

我知道这一切都可以通过使用数据库的程序来完成,但只是好奇是否有 MYSQL 命令可以通过触发器或约束自动执行此操作。

抱歉,如果已发布此内容,我只是在寻找课程的快速说明。

4

1 回答 1

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
;

在此处查看小提琴。

于 2013-04-30T23:10:27.857 回答