Я пытаюсь сделать что-то вроде этого в 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 кажется не работает. Я получаю следующая ошибка: подзапрос должен возвращать только один столбец.
Надеюсь, у кого-нибудь есть обходной путь для меня. В противном случае запросы займут много времени :(.
К вашему сведению: я пытаюсь выбрать разные столбцы из нескольких таблиц и сохранить их во временную таблицу, s o что другое приложение может легко получить подготовленные данные.