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
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
--
Euler Taveira de Oliveira
http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral