在MySQL中设置过期日期的值

在MySQL中设置过期日期的值,mysql,job-scheduling,Mysql,Job Scheduling,MySQL中有一种方法可以在特定的日期时间中设置值。例如: 今天在我的测试桌上有 Id Value Expiration Date 1 0 2012-08-07 18:20 2 0 2012-08-10 15:20 明天我想喝一杯 Id Value Expiration Date 1 1 2012-08-07 18:20 2 0 2012-08-10 15:20 要做到这一点,

MySQL中有一种方法可以在特定的日期时间中设置值。例如:

今天在我的测试桌上有

Id    Value     Expiration Date
1       0      2012-08-07 18:20
2       0      2012-08-10 15:20
明天我想喝一杯

Id    Value     Expiration Date
1       1      2012-08-07 18:20
2       0      2012-08-10 15:20

要做到这一点,只需要一个作业(一些计时器…)?最佳做法是什么

实现这一点的更好方法是在MySQL中创建:

DELIMITER $$

CREATE EVENT event1
ON SCHEDULE EVERY 1 DAY
DO
BEGIN
    UPDATE table_name 
    SET Value = 1
    WHERE DATE(Expiration Date) < CURRENT_DATE AND
          Value = 0;
END$$

DELIMITER ;
分隔符$$
创建事件1
按计划每1天
做
开始
更新表名称
设定值=1
其中日期(到期日)<当前日期和
数值=0;
结束$$
定界符;