PostgreSql INSERT DE L’ID SELECT RETURNING

Dans PostgreSql 9.2.4, j’ai deux tables: user (id, login, password, name) et dealer (id, user_id) .

Et je veux insérer dans les deux tables un identifiant de revendeur créé.

Actuellement, je le fais avec deux requêtes:

 WITH rows AS ( INSERT INTO "user" (login, password, name) VALUES ('dealer1', 'jygbjybk', 'Dealer 1') RETURNING id ) INSERT INTO dealer (user_id) SELECT id FROM rows; SELECT currval('dealer_id_seq'); 

Mais puis-je l’implémenter avec une seule requête INSERT utilisant l’instruction RETURNING ?

Il vous suffit d’append un RETURNING id à votre INSERT ... SELECT :

 WITH rows AS (...) INSERT INTO dealer (user_id) SELECT id FROM rows RETURNING id; 

Démo: http://sqlfiddle.com/#!12/75008/1