python Psycopg 删除不工作
python Psycopg delete not working
代码如下。它 returns "DELETE 1" 有记录要删除, "DELETE 0" 没有。但是当有记录时它实际上并没有删除记录。粘贴到 pgAdmin III 中的完全相同的 SQL(%s
替换为 tournament_id
)会删除记录。我在 wood/trees 阶段。有什么想法吗?
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
所以在你的代码中,你实际上并没有提交。 (或关闭,就此而言,但这不是必需的。)
代码如下。它 returns "DELETE 1" 有记录要删除, "DELETE 0" 没有。但是当有记录时它实际上并没有删除记录。粘贴到 pgAdmin III 中的完全相同的 SQL(%s
替换为 tournament_id
)会删除记录。我在 wood/trees 阶段。有什么想法吗?
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
所以在你的代码中,你实际上并没有提交。 (或关闭,就此而言,但这不是必需的。)