2016-07-27 16 views
3

私はポンドでsqlalchemyを使用して、postgresデータベースを照会し、同じ結果を別のテーブルに挿入します。しかし、私がするとき df.to_sql('db_table2', engine)私はこのエラーメッセージが表示されます: ValueError: Table 'db_table2' already exists.私はそれが新しいテーブルを作成したい気づいた。既存のテーブルにpandasデータフレームを挿入するには? if_existsパラメータのデータベース内の既存のテーブルにpandasデータフレームを挿入するにはどうすればよいですか?

df = pd.read_sql_query('select * from "db_table1"',con=engine) 
#do transformation then save df to db_table2 
df.to_sql('db_table2', engine) 

ValueError: Table 'db_table2' already exists 

答えて

11

メイク使用:ドキュメンテーション文字列から

df.to_sql('db_table2', engine, if_exists='replace') 

または

df.to_sql('db_table2', engine, if_exists='append') 

""" 
if_exists : {'fail', 'replace', 'append'}, default 'fail' 
    - fail: If table exists, do nothing. 
    - replace: If table exists, drop it, recreate it, and insert data. 
    - append: If table exists, insert data. Create if does not exist. 
""" 
+0

それはその都度テーブルをドロップ表示されます。テーブルを更新したいのですが、新しいデータフレームで再作成するのではありません。 – DevEx

+0

@DevEx、 'テーブルを更新する ' – MaxU

+0

をインクリメンタルインサート、つまりデータベーステーブルを更新する毎日のジョブを定義してください – DevEx

関連する問題