尝试在重复上使用时出现语法错误

Posted

技术标签:

【中文标题】尝试在重复上使用时出现语法错误【英文标题】: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 (?, ?, ?, ?, ?, ?)"  

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

我已经用元组平铺解决了

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

【讨论】:

以上是关于尝试在重复上使用时出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章

执行 INSERT 时出现 SQL 错误:“s”附近的语法不正确 [重复]

将 join 与 delete 语句一起使用时出现语法错误 [重复]

验证表单“发送的请求在语法上不正确”时出现错误 400

使用 VS 2015 打开 VS 2017 项目时出现语法错误 [重复]

尝试编译 reCAPTCHA 代码时出现 PHP 语法错误?

尝试使用多个值插入 SQL Server 时出现不正确的语法错误