尝试在重复上使用时出现语法错误
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 语句一起使用时出现语法错误 [重复]
使用 VS 2015 打开 VS 2017 项目时出现语法错误 [重复]