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
