代码如下。它返回" 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
答案 0 :(得分:5)
这与您的数据库大多无关。要在Python中调用没有参数的方法,请在其末尾添加()
。这将在您的数据库上调用commit
:
DB.commit()
虽然这只获得方法参考:
DB.commit
所以在你的代码中,你实际上没有提交。 (或者关闭,就此而言,但这不是必要的。)