E se você esquecesse a idéia de remover a constraint e alterar direto o
valor da chave? Se as dependência estiverem para "cascade" em "on update" o
resultado é que todas as dependências serão atualizadas na medida em que
houver a alteração na chave principal da tabela pai. Claro que haverá o
tempo a ser pago, uma vez que uma alteração de uma das chaves no arquivo
principal envolverá a atulização de n registros nas tabelas filhas.

[]´s

2009/10/5 Marinho Brandao <mari...@gmail.com>

> Olá Charly,
>
> sim, é isso que eu sempre fiz, mas como vi que o DROP COLUMN tinha o
> CASCADE, imaginei que talvez tivesse o equivalente para o ALTER ou
> UPDATE ou quem sabe um ALTER CONSTRAINT.
>
> por isso perguntei na lista :)
>
> mas já está esclarecido, vou continuar fazendo da forma que eu sempre
> fiz (que segundo vocês, a única forma) :)
>
> obrigado
>
> 2009/10/5 Charly Frankl <carl...@gmail.com>:
>  > Marinho,
> >
> > Se entendi o teu problema, você quer um UPDATE CASCADE, certo?
> >
> > Logo, como não tem definido alter constraint, basta remover a antiga e
> criar
> > uma nova com a sitaxe definida em [1]:
> >
> > ALTER TABLE tbl1 ADD CONSTRAINT fk_tbl1_tbl2 FOREIGN KEY (coluna1)
> > REFERENCES tbl2 ( coluna1 ) ON DELETE casacade ON UPDATE cascade;
> >
> >
> > [1] http://www.postgresql.org/docs/8.4/static/sql-createtable.html
> >
> >
> > Att,
> >
> > --
> > Charly Frankl
> > http://javadevilopers.blogspot.com/
> > charlyfra...@gmail.com
> > Linux user #391083
> >
> >
> >
> > 2009/10/5 Marinho Brandao <mari...@gmail.com>
> >>
> >> Olá Euler,
> >>
> >> > Não existe ALTER CONSTRAINT. Como eu disse anteriormente você terá que
> >> > utilizar um bloco de transação contendo ALTER TABLE foo DROP
> CONSTRAINT
> >> > e
> >> > ALTER TABLE foo ADD FOREIGN KEY.
> >>
> >> veja o que você disse:
> >>
> >> >> - dar um UPDATE ... SET ... CASCADE (ou algo semelhante) para
> >> >> atualizar os dependentes simultaneamente
> >> >Não existe tal sintaxe.
> >>
> >> >> - alterar a constraint para ativar o ON UPDATE CASCADE
> >> >>
> >> > Sim.   <<<<<<<<<
> >>
> >> nesse caso vou fazer como eu sempre fiz e deletar/atualizar/recriar a
> >> constraint.
> >>
> >> obrigado :)
> >>
> >> --
> >> Marinho Brandão (José Mário)
> >> http://marinhobrandao.com/
> >> _______________________________________________
> >> pgbr-geral mailing list
> >> pgbr-geral@listas.postgresql.org.br
> >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
> >
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > pgbr-geral@listas.postgresql.org.br
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
>
>
> --
>  Marinho Brandão (José Mário)
> http://marinhobrandao.com/
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
José de Mello Júnior
41.9957-2007
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a