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