在Postgres DB中,更改似乎没有生效

时间:2015-05-30 21:13:28

标签: python psycopg2

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

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()我看到“任务完成!”打印出来,但实际上没有记录从wins表中删除。我需要做些什么才能使更改在DB中生效?

1 个答案:

答案 0 :(得分:1)

默认情况下psycopg2cursor个,不会自动提交。在deleteWinsDB.commit()添加c.executedeleteWins将如下所示:

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