2017-08-11 3 views
0

MSSQLデータベースのテーブルを更新する必要があります。 テーブルの次元では、テーブルをメモリにロードしたり、データフレームを変更したり、書き戻したりすることはできません。sqlalchemyを使用してpandasデータセットからdbテーブルを更新する方法

this topicで提案されているソリューションを使用できないため、一度に1つの列のみを更新する必要があります(つまり、解決策は興味のある行の削除操作を提案します。

だから私は、更新-からの照会

Update mytable 
set mycolumn = dfcolumn 
from df 
where mytable.key=df.key 

mytableがDBTABLEで、dfはパンダのデータフレームであるようなものを実行する必要があります。

SQLALCHEMYでこの種の機能を実行できますか?

+0

を例と現在の入力と期待される出力を指定してください –

答えて

3

ms SQLデータベースで更新するキーと列を使用して一時テーブルを作成します。そして、サーバーへの更新呼び出しを行います。以下では、次の方法で使用することができますSQLAlchemyの

を使用してコードスニペットです:

engine = create_engine('mssql+pymssql://scott:[email protected]: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) 
関連する問題