2012-02-09 35 views
1

我有我的数据库中的某些数据 这个数据每天更新 我想只保留1周的数据在我的数据库 我不希望超过1周的数据旧保持1数据库周的数据

谁能告诉我如何删除除数据库中的一周数据以外的所有数据

+0

数据库是mysql,oracle?还有版本? – 2012-02-09 04:15:00

+0

此外,在你的数据库或特定的表? – 2012-02-09 04:17:47

+0

MYSQL版本是5.1 @MostyMostacho在一个表中 – 2012-02-09 04:18:52

回答

3

设置一个cron作业来检查数据何时超过一周。然后使用where子句删除。

DELETE FROM table WHERE DATEDIFF(NOW(),TimeStampColumn) > 7 
0

数据库格式和绑定使用RRDtool可以轻松访问各种语言的循环数据库功能; RRD是许多系统监控工具的事实标准。

0

最简单的方法:确保记录数据库中所有数据的输入日期/时间并运行cron以定期移除超过一周的所有数据。

0

您有2个选项。

1.Event调度

首先创建表,并创建活动为删除1个星期前记录进行删除查询。

CREATE EVENT `ex1` ON SCHEDULE 
EVERY 1 DAY 
ON COMPLETION NOT PRESERVE 
ENABLE 
COMMENT '' 
DO BEGIN 
DELETE FROM table WHERE DATEDIFF(NOW(),TimeStampColumn) > 7 

END 
//for 3 weeks 

注:MySQL的老版本没有事件调度

2.创建cron作业

file1.sql

DELETE FROM table WHERE DATEDIFF(NOW(),TimeStampColumn) > 7 

时间表此命令:

mysql -uusername -ppassword < /path/to/file1.sql