From: | "Jaime Casanova" <systemguards(at)gmail(dot)com> |
---|---|
To: | "Juan Manuel Fernandez" <jmfernandez(at)unlu(dot)edu(dot)ar> |
Cc: | "Lista - PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Formatear mensajes de error |
Date: | 2008-05-19 05:29:37 |
Message-ID: | c2d9e70e0805182229k29992450o76087be80fd808dd@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Sun, May 18, 2008 at 10:06 PM, Juan Manuel Fernandez
<jmfernandez(at)unlu(dot)edu(dot)ar> wrote:
> ---------- Forwarded message ----------
> From: Juan Manuel Fernandez <jmfernandez(at)unlu(dot)edu(dot)ar>
> Date: 2008/5/19
> Subject: Re: [pgsql-es-ayuda] Formatear mensajes de error
> To: Jaime Casanova <systemguards(at)gmail(dot)com>
>
>
> De maravilla, muchisimas gracias!
> Lo unico que no entendi es...
>
> 2008/5/18 Jaime Casanova <systemguards(at)gmail(dot)com>:
>> On Sun, May 18, 2008 at 6:21 PM, Juan Manuel Fernandez
>> <jmfernandez(at)unlu(dot)edu(dot)ar> wrote:
>>> Buenas Lista!
>>>
>>> Pregunto despues de un rato de googlear y revisar el manual de
>>> PostgreSQL sin mucho exito (consideren que esta en ingles :P), hay
>>> alguna forma de lookear los mensajes de error?
>>>
>>> Por ejemplo, es posible que en vez de que cuando ingreso una clave
>>> repetida me aparezca ERROR: duplicate key value violates unique
>>> constraint "t_deptos_academicos_pkey", aparezca un mensaje redactado
>>> por mi?
>>>
>>
>> Puedes usar el nombre de los constraints, por ejemplo:
>> """
>> create table tab1 (col1 serial);
>> alter table tab1 add constraint "Registro ya existe." primary key (col1);
>>
>> insert into tab1 values(1), (1);
>> """
>>
>> me da este mensaje:
>> ERROR: llave duplicada viola restricción de unicidad «Registro ya existe.»
>
> Aqui me seguiria dando el mensaje que yo marque en mi mail, en
> ingles... me lo estas redactando en español a modo de ejemplo, no?
>
nop, yo instale con la opcion NLS (Native Language Support) y como mi
sistema operativo esta en español el postgres se me configura asi
>
>> O puedes poner el insert en una función y usar RAISE EXCEPTION
>>
>> """
>> CREATE FUNCTION insertar(int) RETURNS VOID AS $$
>> BEGIN
>> BEGIN
>> INSERT INTO tab1 VALUES ($1);
>> RETURN;
>> EXCEPTION WHEN unique_violation THEN
>> RAISE EXCEPTION 'Registro ya existe.';
>> END;
>> END;
>> $$ LANGUAGE plpgsql;
>>
>> select insertar(1);
>> select insertar(1);
>>
>> """
>>
>> y obtendras el error que prefieras, por ejemplo: "ERROR: Registro ya existe."
>>
>
> Si fuera como dije arriba, de este modo cierra mas!
>
eso si, el mensaje queda mejor pero en cambio te toca crear una
funcion para cada insert, update o delete en el que quieras poner un
mensaje personalizado...
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 087171157
From | Date | Subject | |
---|---|---|---|
Next Message | Juan Manuel Fernandez | 2008-05-19 11:26:58 | Re: Formatear mensajes de error |
Previous Message | Juan Manuel Fernandez | 2008-05-19 03:06:04 | Formatear mensajes de error |