Formatear mensajes de error

From: "Juan Manuel Fernandez" <jmfernandez(at)unlu(dot)edu(dot)ar>
To: "Lista - PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Formatear mensajes de error
Date: 2008-05-19 03:06:04
Message-ID: 27f3c8cd0805182006m3973a2a9q7acda16e59377ac4@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

---------- 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?

> 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!

> --
> Atentamente,
> Jaime Casanova
> Soporte y capacitación de PostgreSQL
> Guayaquil - Ecuador
> Cel. (593) 087171157
> --
> TIP 8: explain analyze es tu amigo

Saludos,

Juan

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2008-05-19 05:29:37 Re: Formatear mensajes de error
Previous Message Marcos Saldivar 2008-05-19 00:08:49 Re: Iniciar el postmaster.!!!