Я намагаюся зробити щось подібне в 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, здається, не працює. Я отримую таку помилку: підзапит повинен повернути лише один стовпець.
Сподіваюсь, хтось має для мене обхід. інакше запити займуть цикл часу :(.
FYI: Я намагаюся вибрати різні стовпці з кількох таблиць і зберігати їх у тимчасовій таблиці, щоб інша програма легко отримала підготовлені дані.