Ich versuche so etwas in postgres zu machen:
UPDATE table1 SET (col1, col2) = (SELECT col2, col3 FROM othertable WHERE othertable.col1 = 123);
INSERT INTO table1 (col1, col2) VALUES (SELECT col1, col2 FROM othertable)
Punkt 1 ist jedoch auch mit Postgres 9.0 nicht möglich, wie in den Dokumenten erwähnt ( http://www.postgresql.org/docs/9.0/static/sql-update.html ).
Auch Punkt 2 scheint nicht zu funktionieren. Ich erhalte die folgende Fehlermeldung: Unterabfrage darf nur eine Spalte zurückgeben.
Hoffe, jemand hat eine Problemumgehung für mich. Andernfalls dauert die Abfrage einige Zeit :(.
Zu Ihrer Information: Ich versuche, verschiedene Spalten aus mehreren Tabellen auszuwählen und in einer temporären Tabelle zu speichern, damit eine andere Anwendung die vorbereiteten Daten problemlos abrufen kann.
quelle
Die Antwort von OMG Ponies funktioniert einwandfrei, aber für den Fall, dass Sie etwas Komplexeres benötigen, finden Sie hier ein Beispiel für eine etwas erweiterte Update-Abfrage:
quelle
quelle