MySQL Python 更新或插入
我需要更新一行数据,如果记录已经存在的话;如果不存在,就创建一个新的。我知道使用MYSQLdb中的ON DUPLICATE KEY可以做到这一点,但我在实现上遇到了一些问题。我的代码如下:
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
2 个回答
-2
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
23
缺少了一个括号。你还可以在语句的 ON DUPLICATE KEY UPDATE
部分使用 VALUES(column)
:
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()