Я пытаюсь сделать что-то подобное в postgres:
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)
Но пункт 1 невозможен даже с Postgres 9.0, как упомянуто в документации (http://www.postgresql.org/docs/9.0/static/sql-update.html)
Также пункт 2, кажется, не работает. я получаю следующую ошибку: подзапрос должен возвращать только один столбец.
Надеюсь, у кого-нибудь есть обходной путь для меня. в противном случае запросы будут занимать много времени: (.
К вашему сведению: я пытаюсь выбрать разные столбцы из нескольких таблиц и сохранить их во временной таблице, чтобы другое приложение могло легко получить подготовленные данные.