Em 18/12/07, Alexsander Rosa <[EMAIL PROTECTED]> escreveu:
>
> Pode-se postergar a checagem de chaves:
> http://www.postgresql.org/docs/current/static/sql-set-constraints.html
>
> BEGIN;
>
>
> SET CONSTRAINTS ALL DEFERRED;
>
> INSERT INTO xxxx .......
> <...>
>
> COMMIT;
>
>
> Mas isso não *desliga* a checagem, apenas posterga (deixa para o final).
> Quando o COMMIT for executado as constraints serão todas checadas. Há casos
> raros onde dois registros em duas tabelas diferentes se referenciam
> mutuamente com chaves estrangeiras não-nulas -- não me perguntem, mas já vi
> isso :-). Nesse caso, um INSERT em uma requer um INSERT na outra mas ambos
> falham por causa das chaves estrangeiras. Com esse comando pode-se fazer os
> dois INSERTS numa transação. Para permitir futuramente que se use o comando
> acima, as constraints em questão precisam ser declaradas como DEFERRABLE
> (ver documentação).
>
> Não sei se isso resolve o problema do Junior Prado...



Lí um artigo bem completo sobre  Deferred Constraints escrito por Rodrigo
Hjort na última edição da SQL Magazine ... leitura bem interessante.




Em 18/12/07, Euler Taveira de Oliveira <[EMAIL PROTECTED] > escreveu:
> >
> > junior Prado wrote:
> >
> > > Como desligar e ligar a checagem de chaves estrangeiras?
> > >
> > > check foreign key = 0; //está certo?
> > >
> > Não existe tal comando no PostgreSQL. Para desabilitar verificação de
> > chaves estrangeira somente removendo-as e depois recriando-as.
> > Certifique-se que não manipulará os dados entre estas duas etapas pois
> > você poderá não conseguir recriar as chaves estrangeiras.
> >
> > ALTER TABLE foo DROP CONSTRAINT bar_col_fkey;
> >
> >
> > --
> >   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
> >
>
>
>
> --
> Atenciosamente,
>
> Alexsander da Rosa
> Linux User #113925
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a