2013/6/24 Alexsander Rosa <alexsander.r...@gmail.com>

> Estou colocando COMMENTS nas constraints com mensagens de erro mais claras.
> Quero poder converter isto:
> ERROR:  new row for relation "produto" violates check constraint
> "chk_produto_precomin"
> Nisto:
> O preço de tabela do produto não pode estar abaixo do preço mínimo.
>
> Gostaria de uma maneira de descobrir o SQLSTATE e o ID da constraint que
> deu erro.
> Em último caso vou procurar tudo que está entre aspas no catálogo.
>

Seria isto??

CREATE  table foo(id int primary key);
CREATE  TABLE bar(id int references foo(id));
COMMENT ON CONSTRAINT bar_id_fkey ON TABLE bar IS 'Falha na chave
estrangeira';

DO $$
BEGIN
  INSERT INTO bar VALUES(2);
  EXCEPTION
    WHEN integrity_constraint_violation THEN
  RAISE NOTICE '%', obj_description(49354);
  -- Claro que num trigger vc poderia colocar TG_RELNAME e TG_RELID nos
parametros
  -- desta função
END $$;

Abraço!

-Leo
-- 
Leonardo Cezar
http://www.postgreslogia <http://postgreslogia.wordpress.com>.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a