每当我运行与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中生效?
答案 0 :(得分:1)
默认情况下psycopg2
有cursor
个,不会自动提交。在deleteWins
后DB.commit()
添加c.execute
。 deleteWins
将如下所示:
def deleteWins():
DB = connect()
c = DB.cursor()
c.execute("DELETE FROM wins;")
DB.commit()
print "Task Done!"