python Psycopg删除无法正常工作

时间:2015-03-02 16:20:57

标签: python-2.7 psycopg2

代码如下。它返回" 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

1 个答案:

答案 0 :(得分:5)

这与您的数据库大多无关。要在Python中调用没有参数的方法,请在其末尾添加()。这将在您的数据库上调用commit

DB.commit()

虽然这只获得方法参考:

DB.commit

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