2016-07-08 105 views
0

我想删除超过1天的记录。实现它的最好方法是什么?我从来没有使用过活动,所以我没有什么问题。 例如:我想删除start_time大于1天的记录。 通过做一些研究,我得到了这一点。创建删除事件,每天删除较旧的记录

CREATE EVENT deleteRecords 
ON SCHEDULE EVERY 1 DAY 
ON COMPLETION PRESERVE 
DO 
DELETE FROM databaseName.tableName WHERE start_time < DATE_SUB(NOW(), 
INTERVAL 1 DAY) 
+0

我对事件把我的个人资料页几个环节。就像开启事物等等。 – Drew

+0

最好的办法是在这个表上创建两个触发器(ON INSERT AND OND UPDATE),存储行的一个实现表。因此删除事件可以在没有任何其他操作的情况下运行 –

+0

对您的表有任何描述?猜测你的'start_time'只是一个时间或时间戳或者其他数据类型有点难。您显示的DELETE功能在逻辑上是正确的。 – rhavendc

回答

0

关于如何实现您想要的结果有很多方法。

//sample 1 
DELETE FROM databaseName.tableName WHERE DATE_ADD(start_time,INTERVAL 1 DAY) < NOW(); 

//sample 2 
DELETE FROM databaseName.tableName WHERE ADDTIME(start_time,"1 00:00:01") =< NOW(); 

您的文章中的代码也可以使用。但是如果你不确定你在做什么,不要忘记先备份数据。

参考Date and Time Functions