Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Migrar de BD con ID no correlativo a otra sin perder las IDS

Estas en el tema de Migrar de BD con ID no correlativo a otra sin perder las IDS en el foro de PHP en Foros del Web. Hola Amig@s. Tengo un problema que intentaré explicar lo mejor posible. Tengo que migrar datos de una base de datos a otra, y en la ...
  #1 (permalink)  
Antiguo 19/05/2016, 01:40
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 11 meses
Puntos: 5
Migrar de BD con ID no correlativo a otra sin perder las IDS

Hola Amig@s.

Tengo un problema que intentaré explicar lo mejor posible.

Tengo que migrar datos de una base de datos a otra, y en la migración hacer la transformación puesto que no coinciden todos los datos. El mayor problema que tengo es con los usuarios y los artículos. Resulta que el idUsuario y el idArtículo, soun unicos, auto incrementables. y en las tablas a las que me los llevo también, el problema es que en la tabla original, alguien borró varios registros de manera que el autoincrementable tiene salto por ejemplo:

1, 2, 3, 5, 6, 9, 11 etc...

Y a la hora de enviarlos a la nueva tabla, como el auto incrementable lo gestiona mysql, no me coinciden las ids a partir del primer salto de la original o sea que en la nueva quedaría así:

1 -> 1,
2 -> 2,
3 -> 3,
4 -> 5,
5 -> 6

y el mismo problema con los anuncios, que al llevar la id del anuncio en la URL, las urls a partir del salto las perdería generando muchos 404.

La pregunta es, ¿Existe alguna consulta para que me deje insertar en la nueva tabla aunque tenga el idUsuario, o idArticulo autoincrement con la cual pueda poner los ids tal y como tocan?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 19/05/2016, 02:04
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Migrar de BD con ID no correlativo a otra sin perder las IDS

Hola Benderzuelo,

Si la migración la haces mediante exportación/importación de la base de datos completa, te respetará los autoincrementables tal como los tienes en la original.
  #3 (permalink)  
Antiguo 19/05/2016, 12:54
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Migrar de BD con ID no correlativo a otra sin perder las IDS

Cita:
Iniciado por rbczgz Ver Mensaje
Hola Benderzuelo,

Si la migración la haces mediante exportación/importación de la base de datos completa, te respetará los autoincrementables tal como los tienes en la original.
Hola, gracias, si eso lo tengo claro, el problema es que las bases de datos son distintas, no coinciden campos y hay más etc.. por eso tengo que hacerlo mediante consulta.

No es posible hacerlo?
  #4 (permalink)  
Antiguo 19/05/2016, 14:05
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
Respuesta: Migrar de BD con ID no correlativo a otra sin perder las IDS

No con una query.

El tema que te procupa excede los límites de PHP. Es más algo para discutir en el foro de BBDD, pero en culquier caso lo que te estás planteando no es copiar una base, ni copiar sus datos, sino MIGRAR datos entre bases no compatibles, y eso no se hace fácilmente.
Tendrás que trabajar con una copia de la base a migrar en el mismo servidor de la base destino, y comenzar por ver cómo compatibilizar los datos que vas a migrar de una a otra.

El tema es extenso, y no va a ser fácil. Necesittas cierto dominio de SQL para lograr hacerlo a pura consulta.

te sugiero seguir este tema en el subforo de BBDD.
__________________
¿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: mysql
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 11:58.