在 sql 炼金术中使用 fast_executemany = True 时出错,驱动程序='SQL+Server'



我正在尝试使用fast_executemany来加快df.to_sql插入的速度。我阅读了文档并将其添加到我的代码中,如下所示:

import pandas as pd
import sqlalchemy
import numpy as np
import random
#connect to database
server = 'Test'
database = 'Test'
driver = 'SQL+Server'
driver1 = 'ODBC+Driver+13+for+SQL+Server'
engine_stmt = ("mssql+pyodbc://@%s/%s?driver=%s" % (server, database, driver))
engine = sqlalchemy.create_engine(engine_stmt, fast_executemany=True)
connection = engine.connect()

当我在没有fast_executemany的情况下运行此代码时,它可以工作,但插入需要相当长的时间。因此,我想使用该命令,但是将其与'SQL+Server'驱动程序一起使用时出现错误。因此,我尝试根据文档更改驱动程序,'ODBC+Driver+13+for+SQL+Server'出现以下错误:

def create_connect_args(self, url):
InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

所以我想这个驱动程序不适合我?我测试了几个不同的,但唯一有效的是'SQL+Server'

您的计算机上似乎缺少 ODBC 13 驱动程序。尝试安装它并再次运行脚本。

或者,尝试交换:

driver1 = 'ODBC+Driver+13+for+SQL+Server'

driver1 = 'ODBC+Driver+17+for+SQL+Server'

相关内容

最新更新