代码如下。当有要删除的记录时返回“DELETE 1”,没有时返回“DELETE 0”。但是当有记录时,它实际上并没有删除记录。粘贴到 pgAdmin III 中的完全相同的 SQL(用 %s
替换为 tournament_id
)删除记录。我正处于木材/树木阶段。有任何想法吗?
def deletePlayers(tournamentId):
# takes tournamentId and deletes all records from tournament_player
# with that tournamentId
# but not an error if no records to delete
# check tournamentId set if not return
if tournamentId < 1:
returnStr = "ERROR - tournamentId not set"
return returnStr
DB = connect()
cur = DB.cursor()
# delete data
SQL = "DELETE from tournament_player where tournament_id = %s;"
data = (tournamentId,)
cur.execute(SQL, data )
returnStr = cur.statusmessage
DB.commit
# tidy up
cur.close
DB.close
return returnStr
最佳答案
这主要与您的数据库无关。要在 Python 中调用没有参数的方法,请添加 ()
到最后。这将调用 commit
在您的数据库上:
DB.commit()
而这只得到一个方法引用:
DB.commit
所以在你的代码中,你实际上并没有提交。 (或者关闭,就此而言,但这不是必需的。)
关于python-2.7 - python Psycopg删除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28814545/