2016-02-02 74 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(不大于)七天前的日期的记录。