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