0

我已经做了一些谷歌搜索,但无法真正获得太多相关信息。我正在尝试根据活动为要删除的某些行设置日期/时间。如果激活,除非再次激活,否则时间将推迟到以后。否则将被删除。在活动中激活(插入/更新)时,我已设法对行进行排序。

提前致谢。

4

2 回答 2

3

首先,如果您有数百万行需要删除,请不要将此更新/删除放在触发器中,您将看到插入/更新的性能受到巨大影响。这不是最好的地方。您可以按照 Filype 的建议创建一个 cron 作业。或者,如果您想将其全部保存在 MySQL 中,请使用 MySQL 事件调度程序。

转到此页面以阅读有关在 MySQL 中调度事件的更多信息:http: //dev.mysql.com/doc/refman/5.1/en/events.html

MySQL Event 允许您定期在 MySQL 上安排事情。

代码看起来像

 CREATE EVENT myevent
 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
 DO
  DELETE FROM MyTable Where Expired< NOW();
于 2012-04-25T12:04:18.470 回答
0

这是一个建议,我还没有尝试过,您可能会认为用 deleted=1 更新行而不是实际删除记录。

CREATE TRIGGER deleteInactiveRecords AFTER UPDATE,INSERT ON myTable
    FOR EACH ROW BEGIN
        DELETE FROM myTable WHERE updated < (updated-((60)*60*24))
    END;
于 2012-04-25T12:02:10.467 回答