2017-05-18 4 views
0

내 목표는 Soggetto 항목에서 ID를 가져 와서 tipo 및 tipo2.pu로 채우는 것입니다. nodegs의 pg를 통해 Postgres에서이 CTE를 올바른 방법으로 작성하는 방법을 알 수 없습니다. . 나는 조금 혼란스러워.PostgreSQL에서이 CTE를위한 Rigth way

var query = client.query('WITH retid AS (INSERT INTO "Soggetto" (nome, cognome, "regSociale", "partIVA") VALUES ($1, $2, $3, $4) RETURNING id), INSERT INTO "Tipologia" (privato, azienda) VALUES ($5, $6) SELECT id FROM retid, INSERT INTO "Tipologia2" (cliente, fornitore) VALUES ($7, $8) SELECT id FROM retid ', 
         [sog.nome, sog.cognome, sog.ragioneSociale, sog.partitaIva, sog.cliente, sog.fornitore, sog.privato, sog.azienda], function(err, result){ 
         if(err){ 
          console.log(err); 
         }else{ 
          res.writeHead(200, {'content-type': 'text/plain'}); 
          res.end('Insert ok'); 
         } 
         }); 
+0

어떤 오류가 발생합니까? Node.js 외부에서 작동합니까? 당신이 기대하는 결과는 무엇입니까? –

답변

2

구문이 올바르지 않습니다. 정확히 원하는 것이 명확하지 않지만 각 CTE마다 고유 한 이름이 필요합니다. 그럼, 다음과 같은 것 :

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

더 이상 오류가 없습니다. ....하지만 tipologia 및 tipologia2에서 Soggetto ID를 볼 수 없습니다 .Soggetto_id는 tipo 및 tipo2의 값을 저장하는 열입니다. – user243062

+0

삽입되는 값은 반환 값이 아니라 매개 변수의 값입니다. 이것은 당신이 물어 본 질문에 대한 답입니다. 아마도 * 다른 질문을하고 샘플 데이터, 원하는 결과 및 원하는 것을 설명해 주어야합니다. –