into - PostgreSql INSERT FROM SELECT RETURNING ID
postgresql insert returning example (1)
En PostgreSql 9.2.4 tengo dos tablas: user (id, login, password, name)
y dealer (id, user_id)
.
Y quiero insertar en ambas tablas la devolución de la identificación del distribuidor creado.
Actualmente lo estoy haciendo con dos consultas:
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'');
¿Pero puedo implementar esto con una sola consulta INSERT
usando la instrucción RETURNING
?
Solo necesita agregar un RETURNING id
a su INSERT ... SELECT
:
WITH rows AS (...)
INSERT INTO dealer (user_id)
SELECT id
FROM rows
RETURNING id;
Demostración: http://sqlfiddle.com/#!12/75008/1