【问题标题】:having syntax error trying to use on duplicate尝试在重复上使用时出现语法错误
【发布时间】:2020-09-28 17:27:27
【问题描述】:
sql_insert_query = "insert into TABLE1 (building, course, description, course_type, course_type_desc, dual_credit) 
VALUES (?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE building = VALUES(building), course = VALUES(course), description = VALUES(description), course_type = VALUES(course_type), course_type_desc = VALUES(course_type_desc), dual_credit = VALUES(dual_credit);"

cursor.executemany(sql_insert_query, listCourse)

pyodbc.ProgrammingError: ('42000', u"[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]关键字“ON”附近的语法不正确。 (156) (SQLExecDirectW); [42000] [Microsoft][SQL Server 本机客户端 11.0][SQL Server]无法准备语句。 (8180)")

下面这个只有效,但再次运行时会添加重复。

"insert into TABLE1 (building, course, description, course_type, course_type_desc, dual_credit) VALUES (?, ?, ?, ?, ?, ?)"  

【问题讨论】:

    标签: executemany


    【解决方案1】:

    我绑定了 '%s' 这不起作用,所以我使用的是 '?'

    【讨论】:

      【解决方案2】:

      我已经用元组平铺解决了

      listCourse = numpy.tile(课程, 2) listCourse = map(tuple,numpy.tile(courses, 2))

      【讨论】:

        猜你喜欢
        • 2017-12-11
        • 2018-12-13
        • 2023-02-18
        • 2016-09-04
        • 1970-01-01
        • 1970-01-01
        • 2019-08-10
        • 1970-01-01
        • 2012-03-21
        相关资源
        最近更新 更多