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 en retournant l'id du 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 implémenter cela avec une seule requête INSERT
à l'aide de l'instruction RETURNING
?
Vous avez juste besoin d'ajouter un RETURNING id
à ton INSERT ... SELECT
:
WITH rows AS (...)
INSERT INTO dealer (user_id)
SELECT id
FROM rows
RETURNING id;