使用dataframes通过SQLAlchemy更新MSSQL表

2024-04-20 06:28:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用python替换一些旧的MSSQL存储过程,以减轻sql服务器的一些繁重计算。我要更换的部分程序如下

UPDATE mytable
SET calc_value = tmp.calc_value
  FROM dbo.mytable mytable INNER JOIN 
       @my_temp_table tmp ON mytable.a = tmp.a AND mytable.b = tmp.b AND mytable.c = tmp.c
  WHERE (mytable.a = some_value)
    and (mytable.x = tmp.x)
    and (mytable.b = some_other_value)

到目前为止,我已经用SQLAlchemy进行了一些查询,将这些数据存储在数据帧中,并对它们进行了必要的计算。我现在不知道如何使用SQLAlchemy将数据放回服务器,无论是使用原始SQL还是函数调用。我的端上的数据帧基本上必须在mssqlserver中创建的临时表的位置上工作,但我不确定如何才能做到这一点。在

困难当然是我不知道在一个数据帧和一个mssql表之间连接的方法,我猜这是行不通的,所以我正在寻找一个解决办法


Tags: and数据程序服务器sqlsqlalchemyvalue过程
1条回答
网友
1楼 · 发布于 2024-04-20 06:28:42

正如熊猫医生建议的here

from sqlalchemy import create_engine 
engine = create_engine("mssql+pyodbc://user:password@DSN", echo = False)
dataframe.to_sql('tablename', engine , if_exists = 'replace')

msSql的引擎参数基本上是连接字符串check ithere

if-exist参数是一个但很棘手的参数,因为“replace”实际上会先删除表,然后重新创建它,然后一次插入所有数据。在

通过将echo属性设置为True,它将显示所有后台日志和sql

相关问题 更多 >