24小时后自动更新MySQL表上的字段值

时间:2014-07-22 02:18:19

标签: mysql phpmyadmin

我有一个存储一些敏感信息的表,但我希望这些信息在超过24小时时更改为NULL。我怎样才能做到这一点?我有一个名为“last_updated”的列,并存储类似“2014-02-26 16:25:58”的值。

如何将last_updated值与当前时间进行比较,如果超过24小时,则另一个字段将更改为“NULL”。

我应该放一些像UPDATE table SET info=NULL WHERE last_updated > 24hour?这样的东西我不知道如何比较24小时后的last_updated。

或者MySQL内部是否有一个函数可以自动检查而无需使用phpmyadmin运行查询?

1 个答案:

答案 0 :(得分:2)

您可以使用重置数据的预定作业执行此操作。当然,如果你每天只运行一次工作,那么时间跨度将是24-48小时。

还有另一种选择。那就是通过视图进行所有数据访问。然后视图可以说:

create view v_table as
    select (case when last_updated > now() - interval 1 day then col1 end) as col1,
           . . .
    from table;

然后,您可以随意更新数据 - 如果您仍然觉得有必要的话。对数据的访问不依赖于作业和作业调度程序。如果所有对数据的访问都是通过视图进行的,那么在24小时后,数据将显示为NULL