如何创建一行的生命周期,以便在特定时间后说 2 周后该行将自动擦除?任何信息都会很棒。
问问题
1455 次
3 回答
5
RDBMS 通常不允许行自动自毁。这对生意不利。
更严重的是,一些想法,取决于您的确切需求
- 运行计划作业以运行
DELETE
基于某个日期/时间列删除行 - (更复杂的想法)使用带有滑动窗口的分区表将旧行移动到另一个分区
- 使用视图仅显示小于 2 周的行
于 2013-05-13T12:34:52.433 回答
2
在表中添加一个timestamp
默认为 的列CURRENT_TIMESTAMP
,并在服务器上安装一个 cron 作业,该作业经常运行并修剪旧记录。
DELETE FROM MyTable WHERE datediff(now(), myTimestamp) >= 14;
于 2013-05-13T12:33:29.543 回答
0
或者您可以添加时间戳列并始终选择如下:
SELECT * FROM myTable WHERE timetampColumn>=date_sub(now(), interval 2 week);
如果您不需要删除数据并且只想显示最近 2 周的数据,则效果会更好。
于 2013-05-13T13:00:24.993 回答