Em Qua, 2015-02-25 às 17:51 -0300, Matheus de Oliveira escreveu: > > > 2015-02-25 17:31 GMT-03:00 Matheus Saraiva > <[email protected]>: > > Correto, vou criar um tipo composto sem o código. Mas sobre > pegar os códigos dos dependentes inseridos, ainda não percebi > outra solução além da minha ideia inicial. Só lembrando que um > titular (cliente) pode ter vários dependentes, então eu terei > que ter uma lista com o código de todos eles para poder > inseri-los na tabela "Dependentes". > > > > Ok. > > > Uma solução simples é usar "wCTE" (Writable Comman Table Expression): > > > WITH pessoas AS ( > > INSERT INTO pessoas(...) > > SELECT * FROM unnest(...) > > RETURING codigo > > ) > > INSERT INTO dependentes(pessoa, titular) > > SELECT p.codigo, cliente > > FROM pessoas p;
Estou começando a implementar essa solução, inclusive estou tetando usar ela para outros "inserts compostos", mas estou com umas dúvida. porque no ultimo select, ficou p.codigo ? Não poderia ser só p ou só SELECT pessoas, cliente; ? Suponho que o motivo seja pelo fato de que o RETURNING retornou uma lista contendo vários códigos, seria isso? Digamos que na modelagem, um cliente só pudesse ter um dependente (one to one), assim apenas um código seria retornado pelo RETURNING, nesse caso eu poderia usar SELECT pessoas, cliente; ?
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
