我正在使用MySql和python MySQLdb模块。我要插入新行或更新某些字段(如果该行已存在)。
包含要输入的值的元组列表如下所示;
ListTuple=[('A_val', 'B_val', 'C_val', 'D_val', 'C_val'), ('AA_val', 'BB_val', 'CC_val', 'DD_val', 'CC_val')]
MySQL查询如下所示;
query="""INSERT INTO table (A, B, C, D)
VALUES (%s, %s, %s, %s)
ON DUPLICATE KEY UPDATE
C= %s
"""
try:
Cursor.executemany(query, ListTuple)
Db_conn.commit()
except:
Db_conn.rollback()
使用此代码查询执行失败。有人可以指出这是怎么回事吗?非常感谢您的帮助。
试试这个:
query="""INSERT INTO table (A, B, C, D)
VALUES (%s, %s, %s, %s)
ON DUPLICATE KEY UPDATE
C= VALUES(C)
"""
您的查询有5个占位符,但您的元组只有4个值。您需要复制C
,但是该VALUES(C)
选项将自动从原始的VALUES子句中获取该内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句