Re: Ejecutar restriccion CHECK al finalizar la insercion/actualizacion

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Pedro PG <pedropg(at)outlook(dot)com>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ejecutar restriccion CHECK al finalizar la insercion/actualizacion
Date: 2013-10-30 16:30:42
Message-ID: 20131030163042.GF5922@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Pedro PG escribió:
> Buen día lista, yo nuevamente por aquí aprendiendo. Tengo dos tablas:
> A -|-----<- B (en B esta el id de A)
> :: A representa una ruta:: B representa un(os) puntos de la ruta A
> En la tabla B tengo una restricción CHECK, esta valida que el punto de origen no sea el mismo que el de salida (entre otras validaciones adicionales).
> Tengo una función que inserta en A y otra función que inserta en B. Desde la función A llamo a la función para insertar en B.
> El problema radica en que la restricción CHECK se activa por cada tupla actualizada / insertada. ¿ Hay alguna forma de que la restricción CHECK se active solo cuando la ultima tupla sea insertada / actualizada ?

¿Cómo sabe una tupla en B que es la última? Si puedes crear una
expresión que lo determine, entonces puedes hacer un CASE que verifique
esa expresión, y ejecute este chequeo si la expresión es verdadera; y si
no lo es, entonces no hace nada.

Algo así:
CHECK (CASE WHEN es_ultima(value) THEN verifica_punto_origen(value) ELSE true END)

En todo caso, tu problema me parece muy sospechoso (posiblemente mal
modelo) y también me pregunto si no deberías estar usando PostGIS o algo
así.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Pedro PG 2013-10-30 16:41:15 RE: Ejecutar restriccion CHECK al finalizar la insercion/actualizacion
Previous Message Pedro PG 2013-10-30 16:03:02 Ejecutar restriccion CHECK al finalizar la insercion/actualizacion