2017-05-18 6 views
1

は、私はPostgreSQLでこのCTEを有する他の2つのテーブル(Tipologia>コラムsoggetto_idとTipologia2>コラムsoggetto_id)返されたIDを他のテーブルに格納する方法は?

にテーブルSoggettoから返されたIDを保存します。

WITH retid AS (
    INSERT INTO "Soggetto" (nome, cognome, "regSociale", "partIVA") 
     VALUES ($1, $2, $3, $4) 
     RETURNING id 
), 
t as (
    INSERT INTO "Tipologia" (privato, azienda) 
     VALUES ($5, $6) 
), 
t2 as (
    INSERT INTO "Tipologia2" (cliente, fornitore) 
     VALUES ($7, $8) 
) 
SELECT id 
FROM retid; 
+0

列がID(インクリメント)、名前(文字)、姓(文字)です。 – user243062

答えて

0

あなたはここのように、両方の参照表に "Soggetto" .IDの保存先を指定する必要があります。

with i as (
    INSERT INTO "Soggetto" (nome, cognome, "regSociale", "partIVA") 
    VALUES($1, $2, $3, $4) RETURNING id 
) 
, e as (
    INSERT INTO "Tipologia"(soggetto_id,privato, azienda) select SELECT id, $5, $6 
    FROM i 
) 
INSERT INTO "Tipologia2"(soggetto_id,cliente, fornitore) select SELECT id,$7, $8 
    FROM i 
関連する問題