【发布时间】:2016-09-12 01:12:40
【问题描述】:
我有一个包含status的表,第一次插入时默认值为0,我想在24小时内插入此行后将此值从0更改为1,这意味着在插入24 hours 之后,状态值更改为1。
使用 MySQL。我该怎么做?
【问题讨论】:
-
为什么不插入时间戳? :)
我有一个包含status的表,第一次插入时默认值为0,我想在24小时内插入此行后将此值从0更改为1,这意味着在插入24 hours 之后,状态值更改为1。
使用 MySQL。我该怎么做?
【问题讨论】:
这可能不是正确的方法。我的意思是,您可以设置一个为每一行处理的事件,但这可能会给您的数据库增加大量负载。
相反,如果status 只是说该行的历史少于或多于一天,请将创建日期放入表中并使用视图:
create view v_table as
select t.*, (creation_date >= date_sub(now(), interval 1 day) as status
from table t;
如果status 可以通过其他方式更改,则将其命名为_status 并执行以下操作:
create view v_table as
select t.*,
(case when creation_date >= date_sub(now(), interval 1 day then 1 else _status end) as status
from table t;
【讨论】: