mysql事件在达到日期时更改字段值

时间:2012-03-10 09:44:47

标签: mysql events date field default-value

我想要完成的是: 我有table1,其中包含user_id,group_id(设置了默认值的int)和expire_date.Also table2,其中包含一个字段user_group_id,用作table1的group_id的外键。

当达到日期时,我想将group_id和user_group_id的值更改为默认值。

不幸的是,我似乎无法解决这个问题,因为我是mysql的新手。

Table1最多包含500行。可能每次运行时不会使用该事件更新超过4-5行。

欢迎使用自动替代解决方案。 mysql 5.2.7 php 5.3.8 CentOs 6

提前感谢任何回复!

2 个答案:

答案 0 :(得分:0)

你需要一个像

这样的陈述
update table1 set group_id=<default> where expire_date() > now();

您可以从cronjob或触发器或mysql事件(http://dev.mysql.com/doc/refman/5.1/en/events.html

运行此更新查询

答案 1 :(得分:0)

用事件做了。

CREATE EVENT event_name2
  ON SCHEDULE 
   EVERY 24 HOUR
   DO
    UPDATE test.employees
    SET `group`=DEFAULT
    WHERE expire_date <= now( )

首先我想使用触发器,但只有当数据库中的某些内容发生变化时才会出现这种情况。这就是这种情况。