0

如何创建一行的生命周期,以便在特定时间后说 2 周后该行将自动擦除?任何信息都会很棒。

4

3 回答 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 回答