Ich muss eine Tabelle von einer anderen aktualisieren, und ich muss alle Spalten aktualisieren. Gibt es neben der Auflistung aller Spalten in der SET
Klausel eine Möglichkeit, alle auf einmal zu aktualisieren? So was:
update tableA
set * = tableB.*
from tableB where tableA.id = tableB.id
Ich habe es in psql versucht, es funktioniert nicht. Ich muss jede Spalte so auflisten:
update tableA
set c1 = tableB.c1, c2 = tableB.c2, ...
from tableB where tableA.id = tableB.id
tableB
Verwendung erstellt wird create .. like tableA
. Sie sind also im Grunde identisch. Der Grund dafür ist, dass ich CSV-Daten in eine temporäre Tabelle laden tableB
und dann tableA
basierend auf den neuen Daten in aktualisieren muss tableB
. tableA
muss so wenig wie möglich gesperrt werden und tableA
muss Integrität bewahren. Ich bin mir nicht sicher, ob "Löschen und dann einfügen" eine gute Option ist.