Re: [pgbr-geral] Tabelas mestre-detalhe: qual a melh or tecnica básica para isto?

2008-03-14 Por tôpico Dickson Guedes
Magno Lima escreveu:
 (...) Quando inserir um novo grupo, eu terei automaticamente um valor 
 em ID (pq é serial), sem precisar recorrer a uma chamada sql para 
 saber o valor daquele id novo, como irei associar este ID aos itens 
 que devem ser inseridos.
Ola Magno,

Não sei se entendi a sua dúvida, mas um INSERT .. RETURNING não te 
ajudaria [1]?

[1] http://www.postgresql.org/docs/8.3/interactive/sql-insert.html


[ ]s
Guedes
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tabelas mestre-detalhe: qual a melh or tecnica básica para isto?

2008-03-14 Por tôpico Osvaldo Rosario Kussama
Magno Lima escreveu:
 Coloquei a questão abaixo em alguns foruns mas até agora nao tive 
 resposta, alguem pode ajudar?
 
 Tenho duas tabelas simples, com a seguinte estrutura (isto é um exemplo 
 mais simplificado):
 
 grupo:
 id serial; *pk // int
 nome varchar;
 
 itens:
 id serial; // int
 grupo int; *fk
 detalhes varchar;
 
 Basicamente a tabela grupo tem uma PK e sua relacionada é a tabela 
 itens, cujo campo grupo é a fk de tabela grupo.
 
 A duvida basica é justamente saber que técnica utilizo para criar um 
 grupo novo e a seguir os itens deste grupo, na tabela.
 
 Quando inserir um novo grupo, eu terei automaticamente um valor em ID 
 (pq é serial), sem precisar recorrer a uma chamada sql para saber o 
 valor daquele id novo, como irei associar este ID aos itens que devem 
 ser inseridos.
 
 Para fazer no braço eu iria inserir o nome do novo grupo na tabela, 
 executar um novo sql e pegar o valor do ID, preencher a tabela itens com 
 este ID. Rolling Eyes e ai, qual é a técnica real para isto?
 


Se você acabou de inserir um novo grupo (a qual foi atribuida uma nova 
id) então na inserção do item subordinado coloque, como valor do campo 
itens.grupo, a função currval(sequencia_id_grupo). Veja mais detalhes em:
http://www.postgresql.org/docs/8.3/interactive/functions-sequence.html

Veja também a FAQ, questões 4.11.x:
http://www.postgresql.org/docs/faqs.FAQ.html#item4.11.1

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral