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

Backup y relaciones

Estas en el tema de Backup y relaciones en el foro de Mysql en Foros del Web. Hola, en este hilo http://www.forosdelweb.com/f180/rest...datos-1037798/ He planteado mi problema al hacer una restaura de la base de datos donde me dice que no se puede ...
  #1 (permalink)  
Antiguo 19/02/2013, 05:40
 
Fecha de Ingreso: febrero-2010
Ubicación: La Habana,Cuba
Mensajes: 89
Antigüedad: 14 años, 2 meses
Puntos: 1
Backup y relaciones

Hola, en este hilo
http://www.forosdelweb.com/f180/rest...datos-1037798/
He planteado mi problema al hacer una restaura de la base de datos donde me dice que no se puede eliminar una tabla si tiene datos relacionados con otra el clasico:

Cannot delete or update a parent row: a foreign key constraint fails

He resuelto con eliminar primero las tablas hijas y luego las tablas padres, pero eso lo hice a mano, resulta que la salva la hice con codeigniter, pero sucede lo mimso si la hago con phpmyadmin, el orden en que se escribe en el fichero .sql es ascendente por orden alfabetico, entonces como podria hacerse una salva en el orden que yo desee?
NO estoy utilizando mysl_dump
  #2 (permalink)  
Antiguo 19/02/2013, 06:29
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, 4 meses
Puntos: 2658
Respuesta: Backup y relaciones

El orden de DROP, TRUNCATE o DELETE de tablas con restricciones de FK es siempre inverso al orden de creación de las mismas.
Esto significa que si tienes X tablas que tienen FKs apuntando a Y tablas, las que tienen a su vez FKs apuntando a Z tablas, debes borrar primero las X, luego las Y y finalmente las Z. Tan "simple" como eso.
El problema es que en muchas ocasiones el usuario no ve la totalidad de las dependencias, y pretende borrar tablas que son FK en otras que no percibe. Y puede suceder también que en algún momento, con la base ya en producción, se crearan FKs adicionales que determinen dependencias circulares sin pretenderlo. En estos casos hay que hacer una revisión cuidadosa para ver si es necesario desactivar tales FKs o al menos la verificacion de las dependencias, antes de proceder a borrar.
No hay un método único. Depende del diseño de cada base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/02/2013, 06:44
 
Fecha de Ingreso: febrero-2010
Ubicación: La Habana,Cuba
Mensajes: 89
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Backup y relaciones

garcias por responder gnzsoloyo
si entendi bien en resumen lo que debo hacer es entender mi modelo de bd bien y crearme mi propia rutina para restaurar y/o eliminar dependiendo de mis relaciones. no?
  #4 (permalink)  
Antiguo 19/02/2013, 07:16
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, 4 meses
Puntos: 2658
Respuesta: Backup y relaciones

Exactamente.
Si la estructura está bien construida, podrías hacerte una ingeniería reversa y recuperar el modelo gráficamente, por ejemplo por ejemplo, con el MySQL Workbench.
Esto recuperaría el diagrama de tablas y también podrías visualizar las relaciones y dependencias, sin tnato problema.
Puede ayudarte a trabajar el script.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: backup, php, relaciones, sql, 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 03:02.