2016-10-31 6 views
0

これはどのように正確に機能しますか?最初のクエリから生成されたプライマリキーを取得し、2番目の静的な値(33)と共に2番目のテーブルに挿入するクエリを作成するために最善を尽くしています。私は明らかに "式として使用される副問い合わせによって返される複数の行"エラーを取得しています。私は私の目玉をグーグルで見つけて、この問題を理解することはできません。たぶん、私がやろうとしていることをするためのより良い方法があります。サブクエリから返された複数の行を使用してテーブルに挿入する方法?

私はPostgreSQL 9.5を使用しています。

WITH x AS (INSERT INTO OPTIONS (manufacturer_id, category, name, description) 
VALUES (
    UNNEST(ARRAY['10', '22', '33']), 
    'ExtColor', 
    UNNEST(ARRAY['EC', 'IC', 'IO']), 
    UNNEST(ARRAY['a', 'b', 'c']) 
) 
RETURNING option_id) 
INSERT INTO opt_car_data (car_id, option_id) VALUES ((SELECT option_id FROM x), 33); 

答えて

1
WITH x AS (
    INSERT INTO options (manufacturer_id, category, name, description) 
    VALUES (
     UNNEST(ARRAY['10', '22', '33']), 
     'ExtColor', 
     UNNEST(ARRAY['EC', 'IC', 'IO']), 
     UNNEST(ARRAY['a', 'b', 'c']) 
    ) 
    RETURNING option_id 
) 
INSERT INTO opt_car_data (car_id, option_id) 
SELECT option_id, 33 
FROM x; 
+0

本当にありがとうございました!!!!!!!!!!!!!!!できます! – user3159860

関連する問題