PostgreSql 9.2.4には、user (id, login, password, name)
とdealer (id, user_id)
の2つのテーブルがあります。
そして、作成されたディーラーのIDを返す両方のテーブルに挿入したいと思います。
現在、私は2つのクエリでそれをやっています:
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');
しかし、INSERT
ステートメントを使用して、単一のRETURNING
クエリでこれを実装できますか?
RETURNING id
をINSERT ... SELECT
に追加するだけです。
WITH rows AS (...)
INSERT INTO dealer (user_id)
SELECT id
FROM rows
RETURNING id;