elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  [Pregunta]: ¿Cómo eliminar "registros descendientes" en una consulta SQL?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Cómo eliminar "registros descendientes" en una consulta SQL?  (Leído 3,983 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Pregunta]: ¿Cómo eliminar "registros descendientes" en una consulta SQL?
« en: 25 Mayo 2021, 00:11 am »

Hola!
Básicamente estoy escribiendo una consulta donde va a eliminar registros que ya son muy antiguos pero estoy teniendo problemas para que además elimine otros registros (están en otras tablas) que están relacionados de alguna manera.

Hice este dibujo para que me entiendan mejor:


Sino me pude dar a entender lo puedo volver a explicar, es un poco engorroso..


En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿Cómo eliminar "registros descendientes" en una consulta SQL?
« Respuesta #1 en: 26 Mayo 2021, 04:11 am »

Segun el manual de MySQL:

Código
  1. DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3
  2. WHERE t1.id=t2.id AND t2.id=t3.id;

Pero también puedes cambiar tanto id_tabla_x en tabla_y como id_tabla_y en tabla_z para que sean llaves foráneas y que se eliminen si la llave foranea deja de existir en las otras tablas.

Así solo eliminas un registro de la tabla_x y se eliminan los registros correspondientes en tabla_y y tabla_z.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines