我有命令的表,我想更改为“已过期”命令的状态,如果这种状态并没有在30分钟如何在创建表格后更新表格中的列?
更新变成别的东西: 我希望这种情况发生,每30分钟,我不能做任何事情。数据库会自行更新,如果在30分钟内没有处理此命令,则将任何命令的状态更改为“已过期”
我有命令的表,我想更改为“已过期”命令的状态,如果这种状态并没有在30分钟如何在创建表格后更新表格中的列?
更新变成别的东西: 我希望这种情况发生,每30分钟,我不能做任何事情。数据库会自行更新,如果在30分钟内没有处理此命令,则将任何命令的状态更改为“已过期”
不要这样做!而是使用视图或计算列。
因此,保持最新的更新日期。这应该很容易,因为无论如何你都在修改表格。
然后,可以计算过期为:
create view v_t as
select t.*,
(case when status_update_dt < CURRENT_DATETIME - interval '30 minute'
then 'expired'
else status
end) as new_status
from t;
当然,日期/时间函数取决于在数据库上(上面是ANSI语法)。而且,有些数据库支持将定义直接放在表中的计算列。这非常方便,因为您不必更改数据;它只是在您查询数据时起作用。
'UPDATE key SET value =“expired”WHERE condition',就像我可以给你的尽可能多的你给我们的。投票结果太宽泛,完全缺乏背景。 –
我删除了不兼容的数据库标签。请添加一个标签,指定您真正使用的数据库。 –
你正在使用哪些DBMS?语法不会相同。没有一些表格定义和清晰度,目前不能回答。 –