Pessoal:

Com relação a constraints como a que estou tendo problema eu gostaria de confirmar o que acredito ser o comportamento do PostgreSQL ao aplicar uma. Me corrijam onde eu estiver errado.

Bem eu imagino que no caso da constraint o PostgreSQL percorre os registros involvidos para verificar se nenhum fere a regra explicitada na constraint. Se todos os registros atuais estão em acordo o PostgreSQL cria a constraint e com isso previne que algum registro que iria ferir a regra seja introduzido.

Se for assim imagino que haja muita leitura e pouquíssima gravação. Também imagino que o PostgreSQL use os índices disponíveis nas duas tabelas para fazê-lo, apesar de que para aplicar a constraint sobre a base existente ele precisaria apenas fazer um bom e velho balance-in-line sobre os dois bancos. Em resumo não consigo conceber porque tanta demora nesta maldita constraint. A propósito listo a desgraçada abaixo.

ALTER TABLE "NotaItem"
  ADD CONSTRAINT "NotaItem_CodigoProduto_Produto_FK" FOREIGN KEY ("CodigoProdutoItem")
                 REFERENCES "Produto" ("CodigoInternoProduto") MATCH FULL
                 ON UPDATE RESTRICT ON DELETE RESTRICT;


Sergio Medeiros Santi


_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a