Re: Se puede personalizar los mensajes del Postgres

From: Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Se puede personalizar los mensajes del Postgres
Date: 2006-01-13 21:59:03
Message-ID: fa2b6e3a0601131359y78db620fn@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ok.

Me sirve el link que me has dado, pero solo por curiosidad y por si algún
día lo necesite ¿ que pasa si tengo dos CONSTRAINT CHECK en la misma tabla ?
¿ Cómo podría saber cual de los CHECK se está violando ? ya que la *condition
que se daría para la excepcion siempre el Postgres devolveria CHECK
VIOLATION, pero no sabría cual de los campos o CHECK se está violando.*

Con respecto a tu pregunta:
¿Ahora la pregunta del millon de dolares, para que quieres cambiar los
mensajes?

Lo que pasa es que muestro al usuario el mensaje de error que devuelve el
propio Postgres, pero este mensaje es muy técnico que nos sirve a nosotros
como desarrolladores, pero al usuario lo confunde. Por ejm el mensaje
siguiente :

"ERROR: el nuevo registro para la relación «plaza_movimiento» viola la
restricción check «plaza_movimiento_fechas» CONTEXT: sentencia SQL: «INSERT
INTO "plaza_movimiento" (plaz_id,..........) VALUES ( $1.....)» PL/pgSQL
function "func_addmoviplaza" line 13 at SQL statement "

Mi tabla es:

CREATE TABLE "public"."plaza_movimiento" (
"plmo_id" SERIAL,
"plmo_fechadesde" DATE,
"plmo_fechahasta" DATE,
"plmo_documento" VARCHAR(100) NOT NULL,
"plmo_fechadocu" DATE NOT NULL,
CONSTRAINT "plaza_movimiento_fechas" CHECK (plmo_fechahasta >
plmo_fechadesde)
)

Pensé que quizás podria haber alguna forma de, al momento de crear el
CONSTRAINT CHECK, indicar el mensaje que deseo me devuelva el Postgres
cuando se viola este CONSTRAINT CHECK. Por ejm. "Fecha Hasta no puede ser
mayor que Fecha Desde", de esta manera el Postgres se encargaría totalmente
de validar y comunicar los mensajes necesarios al USUARIO.

Esto evitaría el estar preocupándome por desarrollar excepciones, ya que el
Postgres haría todo.

Gracias Jaime.

El día 13/01/06, Jaime Casanova <systemguards(at)gmail(dot)com> escribió:

> On 1/13/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> > ok. gracias Jaime,
> >
> > ¿Podrias darme un ejemplo simple ? o en todo caso ¿ la ruta para leer en
> la
> > ayuda en linea ??, porque no lo encuentro.
> >
> > Gracias
> >
>
> esto es para hacerlo cuando ejecutas funciones en plpgsql
>
>
> http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
>
> o si lo quieres hacer desde tu aplicacion, tendrias que atrapar la
> excepcion con las facilidades que te de el lenguaje...
>
> Ahora la pregunta del millon de dolares, para que quieres cambiar los
> mensajes?
>
> --
> Atentamente,
> Jaime Casanova
> (DBA: DataBase Aniquilator ;)
>

--
atte.
Luis Guevara

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2006-01-13 22:06:53 Re: Se puede personalizar los mensajes del Postgres
Previous Message conexion_electronica 2006-01-13 21:14:28 migrar