Ver Mensaje Individual
  #1  
Antiguo 01-10-2019
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Reputación: 16
Gregorio Cíber Va por buen camino
Saber si un registro de una tabla está siendo utilizado en otras.

Hola amigos.
Necesito saber si un determinado registro de una tabla está siendo utilizado en otra u otras para que, si no así, borralo.

Intentaré explicarme.

La aplicación delphi (y la BD Firebird 3.0) genera un código de lote por cada artículo cuando se recibe la mercancia, crea el registro con el lote en su tabla correspondiente (llamémosla TBL_LOTES) y anota su referencia en la tabla de líneas de albaranes de proveedor.

La referencia del lote se utiliza, lógicamente, en la tabla anterior, pero también en la de líneas de albaranes de cliente, traspaso de existencias, regularización, etc.

Para que no se llene TBL_LOTES con aquellos que, habiendo sido creados ya no están referenciados en ninguna otra tabla, quiero que se compruebe esto y, si es así, se borren.

Para ello he creado un trigger en TBL_LOTES que despues de modificar analiza tabla por tabla si el lote está refenciado en ellas para tomar la determinación de borrarlo o no. Pero esto, además de lento, lo veo poco elegante razón por la cual solicito ayuda por si alguien tiene una solución mejor.

Espero haberlo explicado bien. Gracias anticipadas.
Responder Con Cita