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

Delete multiple tablas

Estas en el tema de Delete multiple tablas en el foro de Mysql en Foros del Web. Buenas gurues sql, estoy queriendo realizar una consulta DELETE para borrar filas de varias tablas, estoy intentando esto, lo cual se toma unos segundos para ...
  #1 (permalink)  
Antiguo 04/03/2007, 06:36
 
Fecha de Ingreso: abril-2003
Ubicación: Córdoba
Mensajes: 160
Antigüedad: 16 años, 10 meses
Puntos: 0
Pregunta Delete multiple tablas

Buenas gurues sql,
estoy queriendo realizar una consulta DELETE para borrar filas de varias tablas,
estoy intentando esto, lo cual se toma unos segundos para procesarlo, y no me tira ningun error, pero tampoco me borra las filas. Esta mal lo que hago? que podra ser? gracias.

DELETE FROM viviendas, siniestros, productos, otras_polizas, grupo_familiar, cobradores, automoviles, aniocliente, agenda, asignaciones, datos, usuarios, agencias
USING viviendas, siniestros, productos, otras_polizas, grupo_familiar, cobradores, automoviles, aniocliente, agenda, asignaciones, datos, usuarios, agencias
WHERE viviendas.idDatoFK=datos.idDato
AND siniestros.idDatoFK=datos.idDato
AND productos.idDatoFK=datos.idDato
AND otras_polizas.idDatoFK=datos.idDato
AND grupo_familiar.idDatoFK=datos.idDato
AND cobradores.idDatoFK=datos.idDato
AND automoviles.idDatoFK=datos.idDato
AND aniocliente.idDatoFK=datos.idDato
AND agenda.idAsignacionFK=asignaciones.idAsignacion
AND asignaciones.idDatoFK=datos.idDato
AND datos.idAgenciaFK='.$_GET['del'].'
AND usuarios.idAgenciaFK='.$_GET['del'].' AND usuarios.esProductor=1
AND agencias.idAgencia='.$_GET['del']

Tambien probe con esta sintaxis:

DELETE viviendas, siniestros, productos, otras_polizas, grupo_familiar, cobradores, automoviles, aniocliente, agenda, asignaciones, datos, usuarios, agencias FROM viviendas, siniestros, productos, otras_polizas, grupo_familiar, cobradores, automoviles, aniocliente, agenda, asignaciones, datos, usuarios, agencias
WHERE viviendas.idDatoFK=datos.idDato
AND siniestros.idDatoFK=datos.idDato
AND productos.idDatoFK=datos.idDato
AND otras_polizas.idDatoFK=datos.idDato
AND grupo_familiar.idDatoFK=datos.idDato
AND cobradores.idDatoFK=datos.idDato
AND automoviles.idDatoFK=datos.idDato
AND aniocliente.idDatoFK=datos.idDato
AND agenda.idAsignacionFK=asignaciones.idAsignacion
AND asignaciones.idDatoFK=datos.idDato
AND datos.idAgenciaFK='.$_GET['del'].'
AND usuarios.idAgenciaFK='.$_GET['del'].' AND usuarios.esProductor=1
AND agencias.idAgencia='.$_GET['del']
__________________
-----------------
_
__|_|__
º(-_-)º
  #2 (permalink)  
Antiguo 04/03/2007, 09:46
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 14 años, 7 meses
Puntos: 24
Re: Delete multiple tablas

No es bueno hacer consultas tan grandes y que hagan tantas acciones. Creeme, cuando tengas que modificar algo, te va a volver loco.

Te recomendaría que uses una consulta de eliminación por Tabla y colocar todos los DELETE dentro de una sola transacción.
  #3 (permalink)  
Antiguo 04/03/2007, 10:06
 
Fecha de Ingreso: febrero-2007
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
Re: Delete multiple tablas

Si se toma un rato para procesarlo y no borra nada, lo mas probable es que la concición esté mal formulada, despues, el USING si vas a poner los mismos nombres creo que es redundante, se usa para "abreviar" los nombres largos. Finalmente comprueba que lo que necesitas es un AND y no un OR. Lo de subdividir la sentencia esa tan grande en otras pequeñas es un buen consejo, al menos para provar si funciona.
  #4 (permalink)  
Antiguo 13/03/2007, 00:00
 
Fecha de Ingreso: febrero-2007
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Re: Delete multiple tablas

Mandalo tabla por tabla es mas facil de modificarlo cuanto tengas tiempo que no lo ves...
no importa si te lleva 7 lineas o mas de delete por delete,. el tiempo de transacion es minimo.
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 19:19.