我已经做了一些谷歌搜索,但无法真正获得太多相关信息。我正在尝试根据活动为要删除的某些行设置日期/时间。如果激活,除非再次激活,否则时间将推迟到以后。否则将被删除。在活动中激活(插入/更新)时,我已设法对行进行排序。
提前致谢。
首先,如果您有数百万行需要删除,请不要将此更新/删除放在触发器中,您将看到插入/更新的性能受到巨大影响。这不是最好的地方。您可以按照 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();
这是一个建议,我还没有尝试过,您可能会认为用 deleted=1 更新行而不是实际删除记录。
CREATE TRIGGER deleteInactiveRecords AFTER UPDATE,INSERT ON myTable
FOR EACH ROW BEGIN
DELETE FROM myTable WHERE updated < (updated-((60)*60*24))
END;