【问题标题】:MYSQL Change Values based on Table values (Constraint or Trigger?)MYSQL 根据表值更改值(约束还是触发器?)
【发布时间】:2013-04-24 23:36:11
【问题描述】:

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

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

很抱歉,如果这是张贴的,我只是想快速澄清一下课程。

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 我很感激,这真的帮助了我很多,帮助我了解如何制作我需要的其他触发器。
    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多