2016-02-02 75 views
3

我想自動刪除超過7天的記錄,但它不起作用。消息顯示舊數據已刪除,但實際上並未刪除數據。使用Python從MySQL數據庫中刪除舊數據

我的代碼是:

try: 
    db= MySQLdb.connect("localhost","root","","testDB") 
    cursor=db.cursor() 
    sql="DELETE FROM CALLRECORD WHERE DATE< DATE_SUB(NOW(), INTERVAL 7 DAY)" 
    try: 
     cursor.execute(sql) 
     db.commit() 
     print "Deleted Older Data from database" 

    except: 
     db.rollback() 
     print "Cann't delete older data" 
    db.close() 

except: 
    print "localserver not connected" 
+0

嘿@Akash無你試過改變運營商?它有用嗎? –

+0

抱歉的延遲<沒有工作@ misa lazovic –

+0

作爲我在callrecord的存儲日期格式是dd/mm/yy所以我試着sql =「DELETE FROM CALLRECORD WHERE DATE

回答

2

我認爲你在查詢一個錯誤,你刪除它插在過去7天的記錄。使用下面的查詢,而不是你的:

DELETE FROM CALLRECORD 
WHERE DATE < DATE_SUB(NOW(), INTERVAL 7 DAY) 
+0

我的存儲日期格式是dd/mm/yy當我使用您的代碼它刪除當前記錄。我正在使用Linux的數據庫。我測試了WHERE DATE 簽名,它並沒有刪除數據 –

+0

刪除當前記錄是什麼意思? –

+0

嘗試UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL 7 DAY)) –

1

您正在使用>代替<,所以你刪除新記錄,而不是舊的。您需要刪除日期爲LESS(不大於)七天前的日期的記錄。