2012-02-09 79 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