Algunos apuntes con códigos y breves descripciones de Java, Swift, PHP o SQL

TSQL: Como eliminar registros dependientes de otra tabla

Eliminar registros de una tabla en una base de datos no requiere complejidad cuando este depende de una llave única. Esta es cuando tenemos un id que identifica una fila única. Algo más complejo es cuando se quiere eliminar múltiples registros de una tabla; aquí se debe encontrar un patrón que reúna las condiciones necesarias para la correcta eliminación de estas. Esta última requiere un análisis más profundo que una query compleja (más allá de la cláusula where).
Sin embargo existe otra situación en la que tenemos 2 tablas relacionadas, donde debemos eliminar los registros dependientes de una tabla que están asociados a la otra. Este es el caso de la relación uno a muchos en el modelo de base de datos relacional.

La solución a este problema es sencillo. Para entender la solución veamos el siguiente caso.

Ejemplo de registros dependientes
Aquí tenemos una tabla Productos que está relacionada a otra tabla de Categorías; una Categoría “tiene muchos” Productos.

Antes de eliminar los registros hay un paso previo… una buena práctica.

Una práctica que muchos tenemos antes de escribir códigos de eliminación de registros es reemplazar el delete por el select * y así comprobar inmediatamente cuales son los registros que vamos a eliminar. Para esto recurrimos a la cláusula inner join. En este caso se consultaran los productos que están asociados a la categoría que contengan la palabra “maquina”.

SELECT p.nombre
FROM categoria AS c
INNER JOIN product AS p ON c.idCategoria = p.idCategoria
WHERE c.nombre LIKE'%maquina%'

Ahora lo que nos convoca. Para eliminar los registros que están asociados a otra tabla debemos hacer lo siguiente:

DELETE p
FROM categoria AS c
INNER JOIN product AS p ON c.idCategoria = p.idCategoria
WHERE c.nombre LIKE '%maquina%'

Simplemente debemos indicarle a la cláusula delete el alias de la tabla cuyos registros debemos eliminar. En este caso definimos el alias “p”  para la tabla productos.

Espero te haya sido de utilidad este tip, y si te gusto eres libre de compartirlo.

 

Software usado para diagrama de tablas: visio 2013

 

Acerca del autor Nestor Cortes

Informático en aprendizaje constante, y siempre practicando la versatilidad en el mundo real. Experiencia en minería ,banca, y servicios tecnológicos. Desarrollo Java, Swift y PHP principalmente

Categorias: Base de Datos, Tips
Tags: ,
Link: .