Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Borrar un artículo y afectar a otra tabla

Estas en el tema de Borrar un artículo y afectar a otra tabla en el foro de Mysql en Foros del Web. Hola, tengo una duda... ¿hay forma de que al borrar un "artículo" de la tabla artículos, se borren los elementos "dependientes" de otra tabla? (por ...
  #1 (permalink)  
Antiguo 17/02/2008, 20:15
 
Fecha de Ingreso: julio-2006
Mensajes: 25
Antigüedad: 17 años, 9 meses
Puntos: 1
Borrar un artículo y afectar a otra tabla

Hola, tengo una duda...

¿hay forma de que al borrar un "artículo" de la tabla artículos, se borren los elementos "dependientes" de otra tabla? (por ejemplo, la tabla "fotos")que ambas tienen en común el "id_articulo" que las identifica...

Sólo cuento con 2 tablas, no sé hacer relaciones de uno a muchos ni nada de eso :S

ambas tablas tienen el id_articulo en común...
  #2 (permalink)  
Antiguo 18/02/2008, 02:49
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Borrar un artículo y afectar a otra tabla

Que SGBD utilizas???

Lo suyo es tener relaciones y actualizacion en cascada, pero siempre puedes borrar conociendo el id:

delete from Tabla where id_articulo=LoQueSea

Un saludo
  #3 (permalink)  
Antiguo 18/02/2008, 09:15
 
Fecha de Ingreso: julio-2006
Mensajes: 25
Antigüedad: 17 años, 9 meses
Puntos: 1
Re: Borrar un artículo y afectar a otra tabla

MySQL 5.0, bajo php....

Claro, pero lo de relaciones y actualizaciones en cascada, no tengo idea de como es.

Como mucho me puedo limitar a hacer 2 consultas separadas una que borre el item de la tabla articulos, y otra que elimine las fotos relacionadas con ese id_articulo en la tabla fotos...

Pero siempre estoy curioseando formas de automatizar todo un poco más.

si alguién me explica levemente lo de las relaciones mejor :)

Gracias!
  #4 (permalink)  
Antiguo 18/02/2008, 12:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: Borrar un artículo y afectar a otra tabla

Creo que te estás refiriendo a lo que se maneja con "ON DELETE CASCADE", y se manejan en las restricciones de las tablas: http://dev.mysql.com/doc/refman/5.0/...nstraints.html
  #5 (permalink)  
Antiguo 21/02/2008, 02:34
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Re: Borrar un artículo y afectar a otra tabla

También puedes hacerlo con una consulta concatenada, de esta forma:

Código PHP:
Delete From articulosfotos From articulos Left Join fotos ON articulos.idarticulo=fotos.idarticulo Where articulos.idarticulo=
El 1 sería el número de artículo a borrar, yo las hago así y funciona siempre correctamente, de esta forma te aseguras que se borra, casi nunca uso On Delete Cascade, intento preservar la compatibilidad con versiones anteriores en mis aplicaciones.

Ya me contarás.
  #6 (permalink)  
Antiguo 22/02/2008, 08:57
 
Fecha de Ingreso: julio-2006
Mensajes: 25
Antigüedad: 17 años, 9 meses
Puntos: 1
Re: Borrar un artículo y afectar a otra tabla

gracias por tu respuesta

Delete From articulos, fotos From articulos Left Join fotos ON articulos.idarticulo=fotos.idarticulo Where articulos.idarticulo=1

eso borraria registros en las 2 tablas bajo el idarticulo=1 en este caso?

es que no comprendo la sintaxis :(
  #7 (permalink)  
Antiguo 24/02/2008, 04:41
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Re: Borrar un artículo y afectar a otra tabla

exactamente, borraría los relacionados entre las dos tablas.

Puedes incluir hasta 25 tablas creo sumando más comandos "Left Join".

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:00.