【发布时间】:2018-10-12 15:18:08
【问题描述】:
我目前正在使用 python 执行下面的简单查询,使用 pyodbc 在 SQL 服务器表中插入数据:
import pyodbc
table_name = 'my_table'
insert_values = [(1,2,3),(2,2,4),(3,4,5)]
cnxn = pyodbc.connect(...)
cursor = cnxn.cursor()
cursor.execute(
' '.join([
'insert into',
table_name,
'values',
','.join(
[str(i) for i in insert_values]
)
])
)
cursor.commit()
只要没有重复的键,这应该可以工作(假设第一列包含键)。但是对于具有重复键的数据(表中已经存在的数据),它将引发错误。 如何使用 pyodbc 一次性在 SQL Server 表中插入多行,以便简单地更新具有重复键的数据。
注意:有针对单行数据提出的解决方案,但是,我想一次插入多行(避免循环)!
【问题讨论】:
-
插入临时表,然后将临时表合并到主表中。
-
@GordThompson 这是个好主意,所以基本上,你建议我应该创建一个临时表,插入临时表并将临时表与主表合并,最后删除临时表,对吧?
标签: python sql-server pyodbc