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.