更改似乎不会在 Postgres DB 中生效

changes don't seem to take affect in Postgres DB

每当我 运行 我的 python 脚本与 postgresql 数据库交互时,它们似乎没有效果。我没有收到任何错误,代码中的所有内容似乎都执行良好(例如,数据库操作后的打印结果按预期显示),但是当我稍后查看数据库时,我没有看到代码 运行。例如,我有以下代码:

def testDeleteWins():
    deleteWins()
    print "Old wins deleted."

def deleteWins():
    DB = connect()
    c = DB.cursor()
    c.execute("DELETE FROM wins;")
    print "Task Done!"

def connect()
    print"Connected"
    return psycopg2.connect("dbname=project")

如果我 运行 testDeleteWins() 我看到 "Task Done!" 打印出来,但是 none 的记录实际上从 wins table.我需要做什么才能使更改在数据库中生效?

默认情况下 psycopg2cursor 不自动提交。在 deleteWins 中,在 c.execute 之后添加 DB.commit()deleteWins 看起来像:

def deleteWins():
    DB = connect()
    c = DB.cursor()
    c.execute("DELETE FROM wins;")
    DB.commit()
    print "Task Done!"