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

Integrar dos tablas

Estas en el tema de Integrar dos tablas en el foro de Mysql en Foros del Web. Les cuento que tengo dos aplicaciones CMS. Una de ellas tiene una tabla con algo así como 5mil registros y la otra tiene una tabla ...
  #1 (permalink)  
Antiguo 24/09/2008, 17:09
Avatar de JJRC  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 261
Antigüedad: 21 años, 3 meses
Puntos: 1
Integrar dos tablas

Les cuento que tengo dos aplicaciones CMS. Una de ellas tiene una tabla con algo así como 5mil registros y la otra tiene una tabla igual pero con 2 mil registros. Mi intención es agregar los 2 mil registros en la segunda tabla dentro de la primera.
Hasta aquí todo bien, el problema es que el ID de estos registros coincide con los de la primera tabla, con lo cual lo ideal sería "renumerar" los ID de la segunda tabla para poder agregarlo en la segunda sin tener inconvenientes.
La duda es, cómo hago para renumerar estos 2000 ID de la segunda tabla?
__________________
El dinero no te cambia, te delata...
  #2 (permalink)  
Antiguo 25/09/2008, 13:36
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Respuesta: Integrar dos tablas

Muy sencillo, con un simple UPDATE. Sumas el valor del id actual a la secuencia que lo vas a cambiar. Por ejemplo, si en la otra tabla el último id tiene el valor de 5000, eso vas a tomar como base para el otro.

Código sql:
Ver original
  1. UPDATE tabla
  2. SET id = 5000 + id

De esa forma, va a empezar a contar de 5001 o el primer valor inicial que posea el ID más 5000.
__________________
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
  #3 (permalink)  
Antiguo 26/09/2008, 00:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Integrar dos tablas

Quizás no te he entendido bien, pero si la primera tabla tiene un id int y es autoincrement, no sé por qué tienes que preocuparte del id. Bastará con insertar todos los datos de la tabla2 en la tabla1, poniendo todas las columnas menos la columna id
INSERT INTO tabla2 (campo2, campo3, campo4, campo5, campo6) SELECT b.campo2, b.campo3, b.campo4, b.campo5, b.campo6 FROM tabla2 b

el id lo generará automáticamente. Y te quedará una tabla1 con los datos de ambas y el id actualizado. Haz alguna prueba con copias.

Esto es para tablas MyISaM que no tengan otra tabla o tablas relacionadas con ella por el id, pues al cambiar el id de la segunda tabla perderías la relación de los datos de esas otras tablas, aunque podrías corregirlo. En el caso de tablas InnoDB y de tener relaciones, el proceso será distinto.
  #4 (permalink)  
Antiguo 26/09/2008, 08:48
Avatar de JJRC  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 261
Antigüedad: 21 años, 3 meses
Puntos: 1
Respuesta: Integrar dos tablas

Gracias por las respuestas. Se me plantea aquí otro problema.
Estas tablas corresponden a items que pertenecen a una categoría específica.
Si a la tabla 2 la inserto dentro de la tabla 1 solucionando el tema con el ID estaría todo bien excepto porque los ítems de la tabla 2 tienen un id de categorías que aún no tengo en la base de datos de la tabla 1.
Es decir, lo que tengo que hacer es insertar dos tablas, la de las categorías y la de los items.
Lo que me queda pendiente es saber si hay forma de decirle a los items de la tabla 2 que reemplace el valor X (id de categoría) por su nuevo valor Y (id de categoría en la nueva tabla).
¿Se entiende?
Supongo que hay alguna forma de hacerlo no?
__________________
El dinero no te cambia, te delata...
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:03.