更新或插入MySQL Python
问题描述:
如果记录已经存在或需要创建新记录,我需要更新一行。我不明白在DUPLICATE KEY将使用MYSQLdb来完成此操作,但是我无法使其工作。我的代码是下面更新或插入MySQL Python
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说明
答
甲括号中missiing。您也可以在声明的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()
+0
谢谢,我认为这很简单!还有一个问题,你知道是否有可能在你的答案中输入多行代码,否则我会得到非常长的代码行..我使用eclipse .. – DavidJB 2013-03-18 00:10:23
+0
@john请参阅编辑。阅读[Python字符串](http://docs.python.org/2/tutorial/introduction.html#strings) – 2013-03-19 01:13:51
在一般情况下,可以考虑使用'sqlalchemy' – 2013-03-17 20:00:29
什么是primay(或唯一的)表中的关键? – 2013-03-17 20:03:29
表中的列是什么?看起来你有'round'和'roun_id'。这是一个错字还是这两列吗? – 2013-03-17 20:07:27