pao*_*f89 0 python sqlalchemy pyodbc pymssql pandas
我需要更新MSSQL数据库中的表。表的尺寸不允许将表加载到内存中,修改数据框并重新写回。
我还一次只需要更新一列,所以我不能使用本主题中提出的解决方案(即该解决方案提出了对感兴趣的行的删除操作,这对我来说是不可能的,因为我一次只能更新一列)
所以我需要执行类似更新的查询
Update mytable
set mycolumn = dfcolumn
from df
where mytable.key=df.key
Run Code Online (Sandbox Code Playgroud)
其中mytable是dbtable,df是熊猫数据框。
可以使用SQLALCHEMY执行这种功能吗?
用要在ms sql数据库中更新的键和列创建一个临时表。然后对服务器进行更新调用。以下是使用sqlalchemy的代码段
您可以使用以下方式:
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
df.to_sql('temp_table', engine, if_exists='replace')
sql = "UPDATE final_table AS f" + \
" SET col1 = t.col1" + \
" FROM temp_table AS t" + \
" WHERE f.id = t.id"
with engine.begin() as conn:
conn.execute(sql)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2748 次 |
| 最近记录: |