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 ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a