Ich muss eine Tabelle von einer anderen aktualisieren, und ich muss alle Spalten aktualisieren. Gibt es neben der Auflistung aller Spalten in der SETKlausel 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
tableBVerwendung 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 tableBund dann tableAbasierend auf den neuen Daten in aktualisieren muss tableB. tableAmuss so wenig wie möglich gesperrt werden und tableAmuss Integrität bewahren. Ich bin mir nicht sicher, ob "Löschen und dann einfügen" eine gute Option ist.