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

所以在你的代码中,你实际上并没有提交。 (或关闭,就此而言,但这不是必需的。)