From: | Jaime Casanova <jaime(at)2ndquadrant(dot)com> |
---|---|
To: | Jorge Medina <jorge(at)bsdchile(dot)cl> |
Cc: | Pedro PG <pedropg(at)outlook(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Personalizar SQLERRM |
Date: | 2014-02-01 17:34:00 |
Message-ID: | CAJKUy5j3iMUMqkPV0BeywpjJa8B3qC-EhEz4k87MGsvQ30zAhA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2014-02-01 Jorge Medina <jorge(at)bsdchile(dot)cl>:
>
> 2014-02-01 Jaime Casanova <jaime(at)2ndquadrant(dot)com>
>
>> 2014-01-31 Pedro PG <pedropg(at)outlook(dot)com>:
>> >
>> > llave duplicada viola restricción de unicidad «cuk__venta___comprobante»
>> >
>> > Lo que deseo saber es: como es que se arma este mensaje, de que tabla
>> > saca
>> > el texto llave duplicada viola restricción de unicidad,
>>
>> Saludos,
>>
>> El mensaje no sale de una tabla sino que esta en el código fuente de
>> PostgreSQL:
>> el mensaje original está en src/backend/access/nbtree/nbtinsert.c
>> (línea 392) y la traducción al español en src/backend/po/es.po (línea
>> 467)
>>
>> > debo hacer una
>> > función que registre al detalle las excepciones.
>> >
>> > PD: No deseo personalizar el mensaje con la instrucción:
>> >
>> > RAISE EXCEPTION USING ERRCODE = "etc", MESSAGE = "etc";
>> >
>>
>> por que?
>
>
> no es por nada, pero entiendo que «cuk__venta___comprobante» es el nombre de
> una constrain que afecta a dos tablas específicamente y ahí ya tienes tu
> información.
>
pero no puedes basar tu decision en el nombre del constraint por que
tu puedes darle al constraint un nombre no relacionado.
Chequeando un poco mas, veo que desde 9.2 existe GET STACKED
DIAGNOSTICS que te permite sacar información sobre el mensaje de
error, la tabla y otros datos.
http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-EXCEPTION-DIAGNOSTICS-VALUES
--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Linder Poclaba Lazaro | 2014-02-03 13:53:01 | LIMIT y OFFSET hacen lenta un QUERY |
Previous Message | Martín Marqués | 2014-02-01 17:06:05 | Re: Consulta y Saludos. |