Esto es algo relacionado con this question:Eliminar filas no se hace referencia por una llave extranjera
tengo una tabla con una clave principal, y tengo varias tablas que hacen referencia a que la clave principal (usando claves foráneas). Necesito eliminar filas de esa tabla, donde la clave principal no se referencia en ninguna de esas otras tablas (así como algunas otras restricciones).
Por ejemplo:
Group
groupid | groupname
1 | 'group 1'
2 | 'group 3'
3 | 'group 2'
... | '...'
Table1
tableid | groupid | data
1 | 3 | ...
... | ... | ...
Table2
tableid | groupid | data
1 | 2 | ...
... | ... | ...
y así sucesivamente. Algunas de las filas del grupo no están referenciadas en ninguna de las tablas, y necesito eliminar esas filas. Además de esto, necesito saber cómo encontrar todas las tablas/filas que hacen referencia a una fila determinada en el Grupo.
Sé que puedo consultar todas las tablas y verificar las groupid's, pero como son claves foráneas, imagino que hay una mejor manera de hacerlo.
Esto está usando Postgresql 8.3 por cierto.
Bueno, como dije, me gustaría evitar esta situación. Hay varias tablas, las convenciones de nombres no son estándar y son lentas. Como la restricción ya está en su lugar, creo que tiene que haber una mejor manera. –