更新或插入MySQL Python

时间:2013-03-17 19:57:13

标签: python mysql mysql-python

如果记录已经存在,我需要更新一行,如果没有,则需要创建一个新行。我支持ON DUPLICATE KEY将使用MYSQLdb完成此操作,但是我无法使其正常工作。我的代码在

之下
        cursor = database.cursor()
        cursor.execute("INSERT INTO userfan (user_id, number, round VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE user_id =%s, number=%s, round=%s", (user_id, number, round))
        database.commit()

主键是user_id

1 个答案:

答案 0 :(得分:15)

缺少括号。您还可以使用语句的VALUES(column)部分中的ON DUPLICATE KEY UPDATE

    cursor = database.cursor()
    cursor.execute("""
        INSERT INTO userfan 
            (user_id, number, round)
        VALUES 
            (%s, %s, %s) 
        ON DUPLICATE KEY UPDATE 
                                          -- no need to update the PK
            number  = VALUES(number), 
            round   = VALUES(round) ;
                   """, (user_id, number, round)     # python variables
                  )
    database.commit()