2011-05-01 115 views

回答

4

有几种可能的方法。你的选择取决于系统的考虑:

  • 计划作业每分钟,每小时,或天,其执行定期清理功能周期性地运行,也许一次。
  • 保留记录,但在处理这些记录时,查询包含排除过期记录的限定逻辑。过期的记录保留在那里用于审计和历史目的。
2

在X时间后删除行并不是解决这类问题的关系方式。相反,您希望将足够的数据添加到表中,以便您可以查询它并获得所需的结果。

即,添加一列“expire_at”或类似于日期时间,并且当您查询表格时,添加一个子句WHERE expire_at < NOW()

您甚至可以将此添加到视图中,然后您可以通过更简单的方式查询该视图。

0

每当有人要求预订时,您都可以这样做。

mysql> select timestampadd(HOUR, 48, now()); 
+-------------------------------+ 
| timestampadd(HOUR, 48, now()) | 
+-------------------------------+ 
| 2011-05-03 14:53:34   | 
+-------------------------------+ 
1 row in set (0.00 sec) 

(我选择:如果座位已经被人保留,保留的时间标记注册在一个特定的列,您可以通过它与当前的日期进行比较得到保留的“年龄”功能now()来说明这一点,您将替换now()与特定列的名称。)。然后,如果过期,则让新的保留覆盖前一个保留。

相关问题