- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Postgresにて)
Postgresデータベース勉強中でUPDATEとINSERTの方法について相談
このQ&Aのポイント
- Postgresのデータベース勉強中で、UPDATEとINSERTの方法について相談です。Table_AとTable_Bには形式が同じでデータが異なるため、Table_Bの更新データをTable_Aに反映させたいと考えています。
- DELETE文とINSERT文を使用する方法も考えましたが、美しくないと感じています。UPDATE文とINSERT文を組み合わせて実現する方法があれば教えてください。
- その他にも良い方法があれば教えていただきたいです。質問文章に詳細が記載されていますので、ご確認ください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
そのままですが /*TABLE_Bの新規データを挿入*/ insert into TABLE_A select * from TABLE_B where CODE not in (select CODE from TABLE_A) /*更新データをTABLE_Aに反映*/ update TABLE_A DST set ([Field1], ....) = (select * from TABLE_B SRC where SRC.CODE = DST.CODE ) where DST.CODE in (select CODE from TABLE_B) で多分できると思います。確認する環境がないのでご了承ください。 ちなみに今回はUpdateのWhere句は必要がないですが意味あい的つけてみました。 また、OracleのPLANTABLEを使用した解析結果上ではupdateではexistsよりinを使用するほうが パフォーマンスがよいことが多いです。 Postgresの調べ方を知らないものですみません。