关于 MYSQL 语法的几个快速问题,在谷歌上似乎很难找到这些答案。是否可以设置约束或触发器,以便当列的值达到某个点时,它会被重置并完成其他操作。或者,如果说 hourLog 大于零,则许可证状态会从默认值 INVALID 更改为 Valid。
我知道这一切都可以通过使用数据库的程序来完成,但只是好奇是否有 MYSQL 命令可以通过触发器或约束自动执行此操作。
抱歉,如果已发布此内容,我只是在寻找课程的快速说明。
关于 MYSQL 语法的几个快速问题,在谷歌上似乎很难找到这些答案。是否可以设置约束或触发器,以便当列的值达到某个点时,它会被重置并完成其他操作。或者,如果说 hourLog 大于零,则许可证状态会从默认值 INVALID 更改为 Valid。
我知道这一切都可以通过使用数据库的程序来完成,但只是好奇是否有 MYSQL 命令可以通过触发器或约束自动执行此操作。
抱歉,如果已发布此内容,我只是在寻找课程的快速说明。
您可以使用这两个触发器,一个用于 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
;
请在此处查看小提琴。