2009/12/18 Gabriel dos Santos <focusdesenvolvime...@gmail.com>:
> Boa noite a todos,
>
> Gostaria de saber se existe alguma forma de tratar as menssagens de erro
> quando violam um CONSTRAINT de que foi
> estabelecida em uma tabela. Com por exemplo:
>
> CONSTRAINT chk_valor_positivo CHECK (valor >= 0);
>
> Pois caso o meu sistema PHP quando for gravar um produto
> com o valor negativo, o banco de dados irá retornar um mensagem
> de erro da seguinte forma:
>
> ERROR:  new row for relation "tbproduto" violates check constraint
> "chk_valor_positivo"
>
> so que eu gostaria de fazer com que caso a CHECK fosse violada, para
> retornar a seguinte
> mensagem:
>
> O valor do produto não pode ser menor do que zero.
>
> Alguem sabe como fazer isto?
>
>
> --
> Atenciosamente,
> Gabriel dos Santos
> Diretor Executivo
> Focus Desenvolvimento e Consultoria
> Fone(62) 8481-4662 / 3323-1078
>
> Nossa Dedicação, Sua Recompensa
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

Não é algo relacionado ao PostgreSQL...

Depende de como estiver trabalhando com o PHP.

Se estiver usando o PDO, poderá usar blocos try-catch para
capturar os erros e tratar como na programação OO de sempre.

Documentação do PHP PDO:
http://php.net/manual/en/book.pdo.php

Outra solução usando o banco é criar uma procedure que insere o
registro e retorna
uma string com o status, tratando qualquer exceção na procedure,
Desta forma nunca retornará um erro para o script PHP.
O problema é ter que criar as funções no banco e manter mais coisas.

Abraço,
Infelizmente não posso lhe ajudar mais.
-- 
Tarcisio F. Sassara
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a