当前位置: 首页 > 面试题库 >

基本的Pyodbc批量插入

陆正奇
2023-03-14
问题内容

在python脚本中,我需要在一个数据源上运行查询,并将该查询的每一行插入到不同数据源上的表中。通常,我将使用带有tsql链接服务器联接的单个插入/选择语句来执行此操作,但是我没有与此特定数据源的链接服务器连接。

我很难找到一个简单的pyodbc示例。这是我的操作方式,但我猜想在循环内执行插入语句的速度很慢。

result = ds1Cursor.execute(selectSql)

for row in result:
    insertSql = "insert into TableName (Col1, Col2, Col3) values (?, ?, ?)"
    ds2Cursor.execute(insertSql, row[0], row[1], row[2])
    ds2Cursor.commit()

有没有更好的批量方式使用pyodbc插入记录?还是这是一种相对有效的方法。我正在使用SqlServer 2012,以及最新的pyodbc和python版本。


问题答案:

解决此问题的最佳方法是使用pyodbc函数executemany

ds1Cursor.execute(selectSql)
result = ds1Cursor.fetchall()


ds2Cursor.executemany('INSERT INTO [TableName] (Col1, Col2, Col3) VALUES (?, ?, ?)', result)
ds2Cursor.commit()


 类似资料:
  • 问题内容: 以下是我需要帮助的代码。我必须运行1,300,000行,这意味着最多需要 40分钟 才能插入〜300,000行。 我认为批量插入是加快速度的途径吗?还是因为我要通过部分遍历行? 我有目的地动态地选择列标题(因为我想创建尽可能多的pythonic代码)。 SpikeData123是表名。 问题答案: 更新:如@SimonLang的注释中所述,在SQL Server 2017及更高版本下,

  • 本文向大家介绍MySQL批量插入数据脚本,包括了MySQL批量插入数据脚本的使用技巧和注意事项,需要的朋友参考一下 MySQL批量插入数据脚本 新建表格就可以了 插入十万的数据为./jiaoben.sh 100000

  • 问题内容: 这是我在阅读有关jpa批量插入的几个主题之后创建的简单示例,我有2个持久对象User和Site。一个用户可以拥有多个站点,因此我们在这里有一对多的关系。假设我要创建用户并将多个站点创建/链接到用户帐户。考虑到我愿意为Site对象使用批量插入,代码如下所示。 但是,当我运行此代码时(我将hibernate方式用作jpa实现提供程序),我看到以下sql输出: 所以,我的意思是“真实的”批量

  • 我正在写一个数据挖掘程序,可以批量插入用户数据。 当前SQL只是一个普通的批量插入: 如果发生冲突,如何进行更新?我试过: 但它抛出

  • 问题内容: 我正在使用Python中的MySQLdb模块与数据库进行交互。我遇到的情况是有一个非常大的列表(成千上万个元素),需要将它们作为行插入表中。 我现在的解决方案是生成一个大的语句作为字符串并执行它。 有没有更聪明的方法? 问题答案: 有一种更聪明的方法。 批量插入的问题在于,默认情况下启用了自动提交功能,从而导致每个语句在下一次插入可以启动之前被保存到稳定存储中。 如手册页所述: 默认情

  • 问题内容: 我正在尝试将数据从此链接插入到我的SQL Server https://www.ian.com/affiliatecenter/include/V2/CityCoordinatesList.zip 我创建了表 我正在运行以下脚本来进行批量插入 但是批量插入失败,并出现以下错误 当我使用google时,我发现了几篇文章,指出问题可能出在RowTerminator上,但我尝试了诸如/ n