Muszę zaktualizować tabelę z innej i muszę zaktualizować wszystkie kolumny. Czy oprócz listy wszystkich kolumn w SET
klauzuli istnieje sposób na ich zaktualizowanie naraz? Lubię to:
update tableA
set * = tableB.*
from tableB where tableA.id = tableB.id
Próbowałem w psql, to nie działa. Muszę wymienić każdą kolumnę w następujący sposób:
update tableA
set c1 = tableB.c1, c2 = tableB.c2, ...
from tableB where tableA.id = tableB.id
tableB
jest stworzony use create .. like tableA
. Są w zasadzie identyczne. Powodem, dla którego to robię, jest konieczność załadowania danych .csv do tabeli tymczasowej, tableB
a następnie aktualizacji w tableA
oparciu o nowe dane tableB
. tableA
musi być jak najmniej zamknięty i tableA
musi zachowywać integralność. Nie jestem pewien, czy dobrym pomysłem byłoby „usuń, a następnie wstaw”?