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

eliminar campos

Estas en el tema de eliminar campos en el foro de Mysql en Foros del Web. como elimino datos de varias tablas de una sola consulta...
  #1 (permalink)  
Antiguo 25/06/2013, 13:09
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
eliminar campos

como elimino datos de varias tablas de una sola consulta
  #2 (permalink)  
Antiguo 25/06/2013, 13:21
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: eliminar campos

Hola josue07pearl:

Estoy de acuerdo que debes de tratar de ser concreto en las dudas que tengas, pero escribir 10 palabras para tratar de explicar lo que quieres hacer me parece sinceramente una exageración... después de todo en el foro no es como un anuncio clasificado en el que te cobren de acuerdo al número de palabras que publiques

Antes que cualquier cosa, te recomiendo buscar primero ayuda en la documentación oficial:

http://dev.mysql.com/doc/refman/5.0/es/delete.html

Ahí viene la sintaxis para múltiples tablas, que es lo que creo que quieres hacer.

Si continuas con problemas, trata de explicarte mejor, tómate tu tiempo, dinos qué es lo que quieres hacer y qué es lo que intentaste hacer y con gusto tratamos de ayudarte.

Saludos
Leo.
  #3 (permalink)  
Antiguo 25/06/2013, 16:03
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: eliminar campos

bueno lo que deseo es eliminar un registro de una tabla pero al mismo tiempo eliminar aquellos registro q dependan de el, es decir eliminar tambien todos aquellos registro con los que este relacionados
  #4 (permalink)  
Antiguo 25/06/2013, 16:22
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Respuesta: eliminar campos

Eso solo podrías hacerlo con un procedimiento almacenado o trigger. La otra opción es por programación.

Una consulta normal SQL pues no creo que podrías a menos que lo hagas anidando SELECT pero lo siento un poco más complicado.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 25/06/2013, 16:30
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: eliminar campos

La documentacion que coloco: leonardo_josue es basicamente lo que necesitas hacer para eliminar varios datos de varias tablas, Ahora como dice BrujoNic si estan relacionadas crea un procedimiento o un trigger, que cuando elimines un dato de una tabla haga lo mismo con todos sus relacionados... tomando en cuenta que debes de enviar por parametro el PK.
  #6 (permalink)  
Antiguo 25/06/2013, 16:34
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: eliminar campos

ok gracias por la ayuda les agradesco pero creo q no estan relacionadas
  #7 (permalink)  
Antiguo 25/06/2013, 16:36
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: eliminar campos

Cita:
Iniciado por josue07pearl Ver Mensaje
ok gracias por la ayuda les agradesco pero creo q no estan relacionadas
Amigo hagamos algo, coloca la consulta, los datos que estas solicitando borrar de que tablas, y te podemos ayudar a armar el codigo, Pero definitivamente apoyo a leonardo_josue Estas ahorrando cada caracter que puedes...
  #8 (permalink)  
Antiguo 26/06/2013, 09:35
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: eliminar campos

Código MySQL:
Ver original
  1. DELETE FROM organizacion  WHERE id_org = '$id_eliminar'

actualmeten esa es mi sentencia no estan relacionadas por llaves fornaneas sino que solo por el campo id_org la otra tabla se llama oproductos

Última edición por gnzsoloyo; 26/06/2013 a las 09:55
  #9 (permalink)  
Antiguo 26/06/2013, 09:39
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: eliminar campos

Código MySQL:
Ver original
  1. DELETE FROM organizacion, oproductos WHERE id_org = '$id_eliminar'
intente con esta sentencia asi
y me devolvio esto
Código MySQL:
Ver original
  1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id_org = 'JOSCA3-22'' at line 1

Última edición por gnzsoloyo; 26/06/2013 a las 09:55
  #10 (permalink)  
Antiguo 26/06/2013, 09:52
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: eliminar campos

Hola de nuevo josue07pearl:

Compañer@... no esperes encontrar una respuesta sólo para copiar y pegar que sea exactamente lo que quieres... te he dado las pistas necesarias para que hagas la consulta, pero tal pareciera que así como no te tomas el tiempo suficiente como para escribir un post te más de dos renglones, tampoco te tomas el tiempo suficiente como para leer con detenimiento la ayuda que se te proporciona... Mucho ojo con eso...

En la liga que te puse está textualmente este párrafo:

Cita:
Puede especificar múltiples tablas en un comando DELETE para borrar registros de una o más tablas dependiendo de una condición particular en múltiples tablas. Sin embargo, no puede usar ORDER BY o LIMIT en un DELETE de múltiples tablas.

La parte table_references lista las tablas involucradas en el join. Esta sintaxis se describe en Sección 13.2.7.1, “Sintaxis de JOIN”.

Para la primera sintaxis, sólo los registros coincidentes de las tablas listadas antes de la cláusula FROM se borran. Para la segunda sintaxis, sólo los registros coincidentes de las tablas listadas en la cláusula FROM (antes de la cláusula USING ) se borran. El efecto es que puede borrar registros para varias tablas al mismo tiempo y tienen tablas adicionales que se usan para buscar:

Código:
DELETE t1, t2 FROM t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;
O:

Código:
DELETE FROM t1, t2 USING t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;
Observa cómo tienes que referenciar las tablas que se van a a eliminar.

Ahora bien, debes tener MUCHO CUIDADO al hacer este tipo de eliminaciones, pues si lo haces mal corres el riesgo de eliminar información que de más con los problemas que eso conlleva...

Siempre es recomendable que hagas un SELECT para ver que la información que te está regresando la consulta es la que quieres eliminar y a partir de eso, buscas su equivalencia con el DELETE... por ejemplo, si haces esto:

Código MySQL:
Ver original
  1. SELECT * FROM organizacion, oproductos WHERE id_org = '$id_eliminar'

Que es lo que estás intentando eliminar, en realidad estás realizando un PRODUCTO CARTESIANO entre tus tablas, ya que no estás indicando ninguna relación entre tus tablas, es decir algo como

Código:
organizacion.campo = oproductos.campo
si dices que tus tablas no están relacionadas entonces ¿cómo es que que pretendes hacer una eliminación con una sola consulta?

Saludos
Leo.
  #11 (permalink)  
Antiguo 26/06/2013, 10:00
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta Respuesta: eliminar campos

como podria elaborar la sentencias sql
  #12 (permalink)  
Antiguo 26/06/2013, 10:09
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: eliminar campos

GRACIAS ME HA FUNCIONADO CON ESTA DOS TABLAS AHORA FALTA PROBAR CON OTRAS 6 TABLAS MAS LA SENTENCIA LA ELABORE ASI GRACIA SA TODOS USTEDES ....POR SU AYUDA

Código MySQL:
Ver original
  1. DELETE FROM organizacion, oproductos USING organizacion,oproductos
  2. WHERE organizacion.id_org = '$id_eliminar' and oproductos.id_org=organizacion.id_org

Última edición por gnzsoloyo; 26/06/2013 a las 10:57
  #13 (permalink)  
Antiguo 26/06/2013, 10:39
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: eliminar campos

Gracias a dios josue07pearl ya conseguiste darle logica y sentido a las pistas que te ha dado el amigo leonardo_josue Ahora bien si no son 2 tablas si no que son mas... pues debes de llevar la misma logica... tratar de relacionar lo que estas borrando...

Otra opcion que yo haria es hacer un bucle con los delete...
  #14 (permalink)  
Antiguo 26/06/2013, 11:17
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: eliminar campos

encontre un problema que si una de todas la tablas no tiene registros con el codigo a eliminar no elimina nada y muestra el mensaje registro eliminado
  #15 (permalink)  
Antiguo 26/06/2013, 11:51
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: eliminar campos

la mejor opcion que tuve fue crear una sentencia para cada tabla
Código MySQL:
Ver original
  1. DELETE FROM organizacion  WHERE id_org = '$id_eliminar'
  2. DELETE FROM atractivos  WHERE id_org = '$id_eliminar'
  3. DELETE FROM oproductos  WHERE id_org = '$id_eliminar'
  4. DELETE FROM cerros  WHERE id_org = '$id_eliminar'
  5. DELETE FROM cultivos  WHERE id_org = '$id_eliminar'
  6. DELETE FROM economico  WHERE id_org = '$id_eliminar'


esta bien lo que he hecho porque son 16 tablas ahi faltan mas
  #16 (permalink)  
Antiguo 26/06/2013, 11:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: eliminar campos

Por favor, no postear código de programación.
Al momento de pegar el código, debes borrar todo lo que no sea SQL, de lo contrario tengo que hacerlo yo.

Gracias.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 26/06/2013, 16:00
 
Fecha de Ingreso: junio-2013
Mensajes: 33
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: eliminar campos

ok pero como lo edito o lo elimino
pero esta bien la solucion que encontre

Etiquetas: campos, tabla
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 13:41.