【问题标题】:How to On Duplicate Key Update如何进行重复密钥更新
【发布时间】:2014-08-15 07:45:25
【问题描述】:

我在我的 Python 脚本中执行了这个查询,但是当它插入数据库并找到我的唯一列的副本时,它会导致它出错并停止。我知道我需要使用 On Duplicate Key Update 但我注意到如何正确添加它。

我的独特专栏 2。

cur.execute("""INSERT INTO logs (1,2,3) VALUES (%s,%s,%s) """,(line[0], line[1], line[2]))

如果有重复,让它更新该行/条目。

【问题讨论】:

    标签: python mysql sql on-duplicate-key


    【解决方案1】:

    当我正确理解您时,您正在寻找的是:

    cur.execute(""" INSERT INTO logs (1, 2, 3) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE 1=%s, 3=%s """, (line[0], line[1], line[2], line[0], line[2]))
    

    还要检查Insert on duplicate

    【讨论】:

    • 是的,我已经尝试了几次在上面的代码中实现它,但我似乎无法理解它。
    • 那么有什么不好的呢?执行此行时发生了什么?
    • cur.execute(""" INSERT INTO logs (1, 2, 3) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE 1=%s, 3=%s " "", line[0], line[1], line[2], line[0], line[2]) TypeError: execute() 最多接受 3 个参数(给定 7 个)
    • 那是因为我忘记了参数周围的括号。我已在上面修复它,请重试。
    • 非常感谢您的帮助!它现在正在工作并更新行而不会引发错误或停止脚本的其余部分。所以“ON DUPLICATE KEY UPDATE 1=%s, 3=%s”你指的是插入语句,其中列是数字。那么对于每个 %s 必须有一个参数(行 [#] 部分)与语句中的 5 %s 一起使用?
    猜你喜欢
    • 2015-12-11
    • 2014-10-01
    • 1970-01-01
    • 2011-01-28
    • 2014-10-31
    • 2018-06-24
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多