別のテーブルからテーブルを更新する必要があり、すべての列を更新する必要があります。SET
句のすべての列をリストする以外に、それらを一度にすべて更新する方法はありますか?このような:
update tableA
set * = tableB.*
from tableB where tableA.id = tableB.id
私はpsqlで試しましたが、うまくいきません。次のようにすべての列をリストする必要があります。
update tableA
set c1 = tableB.c1, c2 = tableB.c2, ...
from tableB where tableA.id = tableB.id
tableB
作成された使用create .. like tableA
。したがって、それらは基本的に同一です。そして、私がそれをしている理由は、.csvデータを一時テーブルにロードしてから、の新しいデータに基づいてtableB
更新する必要があるからです。ロックをできるだけ少なくする必要があり、整合性を維持する必要があります。「削除してから挿入」が良い選択肢かどうかわかりませんか?tableA
tableB
tableA
tableA