Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/09/2011, 04:50
nessemar
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 5 meses
Puntos: 0
Comprobar igualdad de atributos (menos uno) en varias tablas con distintos atributos

Buenos días, quería solicitar vuestra ayuda con este caso:

Dispongo de una función estándar y que recibe por parámetros

1.- Tabla de volcado de resultados.
2.- Condición espacial (es para Postgis)
3.- Tabla de entrada 1
4.- Tabla de entrada 2

Capturando la excepción de que los prámetros 3 y 4 sean el mismo he conseguido con una sola función suplir tanto el comparar dos tablas distintas, como una tabla contra si misma.

------------------------------------------------------------------------------------------------

Ahora lo que pretendo es mejorar esa función con un quinto parámetro que me permita comprobar que todos los atributos de la tabla1 sean iguales a la tabla2. Los problemas :

1.- Todos los atributos deben ser iguales excepto, lógicamente el identificador y el campo geometría por lo que no puedo recurrir a tabla1.* = tabla2.*
2.- Cada tabla de la BBDD tiene unos atributos diferentes por lo que no puedo comprobar estos atributo a atributo.

Resumiendo: Tal vez simplemente es que pretendo un imposible, y no puedo pretender que un solo esquema sea tan genérico como para adaptarse a todos los casos, pero me preguntaba si existiría algún modo de indicar mediante Postgres que quiero que se cumpla la igualdad de todos los atributos de la tabla excepto esos dos.

Otra posible solución: Una idea que tenía era realizar un pequeño bucle que recorra la tabla, compruebe cada atributo (que no sea 'gid' ni 'geom') y compare los valores. Las dudas :

1.- Que no se si esto es una "salvajada" en lo que implica tiempos de ejecución.
2.- Que no tengo ni idea de como hacerlo, pues aunque me conozco bien todas las funcionalidades de Postgis, parezco un "pez fuera del agua" cuando necesito moverme en Postgres. ¿podríais orientarme con algún ejemplo que haya en la web, o indicandome que objetos y funciones me dan acceso a los atributos de una tabla?.

Muchas gracias a todos por vuestro tiempo, y disculpad la "chapa" que os he soltado... espero que pueda solucionarse con mi primera alternativa, y no con la segunda... un saludo.