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

¿ Como pasar datos de una B.D. a otra (con campos con otro nombre)?

Estas en el tema de ¿ Como pasar datos de una B.D. a otra (con campos con otro nombre)? en el foro de Mysql en Foros del Web. Hola a todos, Tengo que pasar una serie de datos de una base de datos mysql a otra también mysql. La estructura de ambas es ...
  #1 (permalink)  
Antiguo 03/06/2015, 04:40
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
¿ Como pasar datos de una B.D. a otra (con campos con otro nombre)?

Hola a todos,

Tengo que pasar una serie de datos de una base de datos mysql a otra también mysql. La estructura de ambas es esta:

BD ORIGEN:
- nombre
- apellidos
- telefono

BD DESTINO:
- nbre
- ape
- tel

¿ Cómo puedo insertar los datos de BD ORIGEN a BD DESTINO ?

Muchas gracias.
  #2 (permalink)  
Antiguo 03/06/2015, 05:53
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: ¿ Como pasar datos de una B.D. a otra (con campos con otro nombre)?

PArtamos de un detalle para aclarar confusiones: No son BASES DE DATOS, son TABLAS...
En cuanto a la solución, la encotnrarás en cualquier manual básico: Si ambas tablas son iguales, con los mismos campos, del mismo tamaño y tipo, es tan simple como:
Código MySQL:
Ver original
  1. INSERT INTO tablaDestino(nbre, ape, tel)
  2. SELECT nombre, apellidos, telefono
  3. FROM tablaOrigen;
Claro que para que esto esté bien realizado, ninguno de los datos en los registros de la tabla Origen debe existir en la tabla DEstino, o se duplicarán.
Si, por ejemplo, alguno de esos campos es PK, digamos el teléfono, y solo quieres que se inserten aquellos que no existen en la tabla Destino, puedes hacerlo de varias formas, pero la más simple sería:
Código MySQL:
Ver original
  1. INSERT IGNORE INTO tablaDestino(nbre, ape, tel)
  2. SELECT nombre, apellidos, telefono
  3. FROM tablaOrigen;
Ese "IGNORE" hace que no se inserten registros cuya PK es la misma de la destino, pero tampoco devuelve mensajes de erorr si encuentra alguno; caso contrario la ejecución se detiene con un error de clave duplciada.

Pero si ninguno de esos campos es PK, pero pueden existir ya datos de la Origen en la Destino, tendrás que hacer un par de pasos previos, entre ellos crear una tabla temporal donde pongas los datos que se insertarán:

Código MySQL:
Ver original
  1. # Recoleccion de datros.
  2. SELECT nombre, apellidos, telefono
  3. FROM tablaOrigen
  4. WHERE telefono NOT IN(SELECT tel FROM tablaDestino);
  5.  
  6. # Insercion de los datos encontrados.
  7. INSERT INTO tablaDestino(nbre, ape, tel)
  8. SELECT nombre, apellidos, telefono
  9. FROM OrigenTemp;
  10. ;

Cuidado: Las tablas temporary sólo existiran durante la misma conexión. No puedes usarlas si la conexión se cierra ni siquiera momentáneamente, porque la tabla se borra en forma instantánea.
__________________
¿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: campos, sql
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 21:05.