J'essaye de faire quelque chose comme ça dans 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)
Mais le point 1 n'est pas possible même avec postgres 9.0 comme mentionné dans la documentation ( http://www.postgresql.org/docs/9.0/static/sql-update.html )
Le point 2 semble également ne pas fonctionner. j'obtiens l'erreur suivante: la sous-requête ne doit renvoyer qu'une seule colonne.
J'espère que quelqu'un a une solution de contournement pour moi. sinon, les requêtes prendront un certain temps :(.
FYI: J'essaie de sélectionner différentes colonnes de plusieurs tables et de les stocker dans une table temporaire, afin qu'une autre application puisse facilement récupérer les données préparées.