使用Python从MySQL数据库中删除旧数据

时间:2016-02-02 11:16:32

标签: python mysql

我想自动删除超过7天的记录,但它不起作用。消息显示旧数据已删除,但实际上并未删除数据。

我的代码是:

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"

2 个答案:

答案 0 :(得分:2)

我认为您在查询中犯了错误,您正在删除过去7天内插入的记录。使用以下查询而不是您的查询:

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

答案 1 :(得分:1)

您使用的是>而不是<,因此您要删除新记录而不是旧记录。您需要删除日期少于(不大于)七天前的日期的记录。