Magno Lima wrote: > 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? > Um bloco de transação. Sem ele fica difícil você garantir a atomicidade da operação.
euler=# \d grupos Tabela "public.grupos" Coluna | Tipo | Modificadores --------+-----------------------+---------------------------------------------------- a | integer | not null default nextval('grupos_a_seq'::regclass) b | character varying(10) | Índices: "grupos_pkey" PRIMARY KEY, btree (a) euler=# \d itens Tabela "public.itens" Coluna | Tipo | Modificadores --------+-----------------------+--------------------------------------------------- a | integer | not null default nextval('itens_a_seq'::regclass) b | character varying(10) | c | integer | Índices: "itens_pkey" PRIMARY KEY, btree (a) Restrições de chave estrangeira: "itens_c_fkey" FOREIGN KEY (c) REFERENCES grupos(a) euler=# begin; BEGIN euler=# insert into grupos (b) values('foo'); INSERT 0 1 euler=# select currval('grupos_a_seq'); currval --------- 1 (1 registro) euler=# insert into itens (b, c) values('bar', 1); INSERT 0 1 euler=# insert into itens (b, c) values('baz', 1); INSERT 0 1 euler=# commit; COMMIT > Obrigado. > > > ------------------------------------------------------------------------ > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Euler Taveira de Oliveira http://www.timbira.com/ _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral