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