调试 Pandas to_sql 函数

问题描述 投票:0回答:1

我使用以下代码将 DataFrame 插入 MS SQL Server 数据库。

data
是一个 pd.DataFrame,与数据库具有相同的列。

from sqlalchemy import create_engine
engine = create_engine(f'mssql+pyodbc:///?odbc_connect={connection_string}', fast_executemany=True)
with engine.connect() as connection:
    data.to_sql(
        'dbo.tablename',
        connection,
        if_exists='append',
        index=False,
        dtype={...}  # Correct mapping of columns in data to SQL data types.
        )

代码通过,我没有收到任何错误。然而,即使数据库应该改变,它也不会改变。

如何调试这段代码?

python sql-server pandas sqlalchemy pyodbc
1个回答
0
投票

我终于找到了问题所在。这部分代码似乎发生了一些奇怪的行为:

data.to_sql('dbo.tablename', ...)

使用前缀

dbo.
在SSMS中很常见,但sqlalchemy似乎没有正确支持它。删除
dbo.
后,数据写入数据库。

© www.soinside.com 2019 - 2024. All rights reserved.