1

我有 2 个表的 MySql 数据库:事件历史

它们具有相同的列。

我想做的第一件事是将所有传递给历史的事件移至历史,并通过以下方式实现:

@"INSERT INTO history (clientid, startdate, enddate, first, city) " +
            "SELECT clientid, startdate, enddate, first, city " +
            "FROM events " +
            "WHERE startdate < now()";

这部作品完美。

现在我想从历史记录中删除 startdate 3 个月前通过的行。我怎样才能实现它?

4

2 回答 2

3

只需将开始日期与实际日期减去 3 个月进行比较(使用DATE_SUB

delete from history
where start_date < DATE_SUB(now(), interval 3 month)
于 2013-11-01T08:59:12.223 回答
0

您可以使用 Mysql 事件调度程序,如下所示:

CREATE EVENT myevent
    ON SCHEDULE AT CURRENT_TIMESTAMP - INTERVAL 3 MONTHS
    DO
      //your query

有关更多信息,您可以查看:http ://dev.mysql.com/doc/refman/5.1/en/create-event.html

于 2013-11-01T08:59:16.173 回答