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
