Python 使用df.to_sql(如果_存在=';追加';)和sqlalchemy在sql Server表中向上插入
我正在尝试使用sqlalchemy将数据帧插入到SQL Server表中。我一直在使用Python 使用df.to_sql(如果_存在=';追加';)和sqlalchemy在sql Server表中向上插入,python,sql-server,dataframe,orm,upsert,Python,Sql Server,Dataframe,Orm,Upsert,我正在尝试使用sqlalchemy将数据帧插入到SQL Server表中。我一直在使用df.to\u sql(如果存在class='append')方法,认为它的行为类似于UPSERT,但现在我意识到情况并非如此 实际情况是,“append”只能添加到现有表中,但如果表中已有行,则无法更新单个行。我真的试图避免在数据帧中循环,但看起来这是唯一可以在这里工作的方法,除非我可能误解了ORM中的某些内容 这是我的表格定义。我正在使用SQL Server: CREATE TABLE [dbo].[PRO
df.to\u sql(如果存在class='append')
方法,认为它的行为类似于UPSERT,但现在我意识到情况并非如此
实际情况是,“append”只能添加到现有表中,但如果表中已有行,则无法更新单个行。我真的试图避免在数据帧中循环,但看起来这是唯一可以在这里工作的方法,除非我可能误解了ORM中的某些内容
这是我的表格定义。我正在使用SQL Server:
CREATE TABLE [dbo].[PRODSYNTHESIS_NN]
(
[Project_id] [int] NOT NULL,
[Project_name] [nvarchar](30) NOT NULL,
[Date_results] [datetime] NOT NULL,
[P_injecte] [real] NULL,
[P_soutire] [real] NULL,
[Q_injecte] [real] NULL,
[Q_soutire] [real] NULL,
[Zone] [nvarchar](2) NULL,
CONSTRAINT [PK_PRODSYNTHESIS]
PRIMARY KEY CLUSTERED ([Project_id] ASC,
[Project_name] ASC,
[Date_results] ASC)
)
错误是:
sqlalchemy.exc.IntegrityError:(pyodbc.IntegrityError)('23000',“[23000][Microsoft][SQL Server原生客户端11.0][SQL Server]违反主键约束'PK_PRODSYNTHESIS'。无法在对象'dbo.PRODSYNTHESIS_NN'中插入重复的键。重复的键值为(21,BLAH,2020年6月1日上午8:00)。(2627)(SQLExecDirectW);[23000][Microsoft][SQL Server本机客户端11.0][SQL Server]语句已终止。(3621)”
这里有一个公共关系的官方图书馆有一个公共关系的官方图书馆