首页 > 解决方案 > 违反 UNIQUE KEY 约束 - Pandas to_sql Python SQLAlchemy

问题描述

我正在尝试使用 Pandas to_sql 方法将数据框输入到 SQL Server 数据库中,但出现错误:

'23000', "[23000] [Microsoft][SQL Server Native Client 11.0][SQL Server]违反 UNIQUE KEY 约束...无法在对象中插入重复键

其他人在这里发布了类似的问题: Pandas to_sql 'append' to an existing table cause Python crash

然而,他的解决方案基本上是他需要删除主键的重复项,因为他多次提交主键。我什至没有尝试提交主键,我希望 SQL Server 分配它。这是我调用的方法:

df.to_sql('table_name', engine, if_exists='append', index=False, chunksize=1000)

我知道引擎可以连接到数据库,因为如果我使用 read_sql 方法,它可以很好地从数据库中返回数据。我只是无法写入数据库,当我什至不尝试触摸主键时,它显然会看到我重新使用主键。任何人都可以帮忙吗?

标签: pythonsql-serverpandassqlalchemy

解决方案


我想我想通了。数据库设置为不允许相同的名称和地址 1 字段,我的数据与地址 1 有一些重复但地址 2 不同。需要对数据库进行一些更改,然后重试。我将留下我的问题,以帮助可能遇到类似问题的其他人。


推荐阅读