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

Migrar base de datos

Estas en el tema de Migrar base de datos en el foro de Bases de Datos General en Foros del Web. Hola amig@s tengo el siguiente problema, tengo una base de datos antigua que la e usado por algunos meses y ya llega a los 150000 ...
  #1 (permalink)  
Antiguo 05/06/2009, 15:03
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 4 meses
Puntos: 3
Migrar base de datos

Hola amig@s tengo el siguiente problema, tengo una base de datos antigua que la e usado por algunos meses y ya llega a los 150000 apuntes, pero e estado trabajando en un nuebo sistema que usa casi la misma base de datos solo con una diferencia de un campo y necesito pasar todos los apuntes de la primera base de datos a la segunda; la primera bd tiene la siguiente estructura:
Código PHP:
CREATE TABLE `direc_http` (
  `
direccionvarchar(1000NOT NULL,
  `
fechadatetime NOT NULL,
  `
pagvarchar(100NOT NULL,
  
PRIMARY KEY  (`direccion`)
ENGINE=MyISAM DEFAULT CHARSET=cp1251
y la segunda tiene la siguiente estructura
Código PHP:
CREATE TABLE `virusdb`.`direc_http` (
`
numeroINT NOT NULL AUTO_INCREMENT ,
`
direccionVARCHAR1000 NOT NULL ,
`
fechaDATETIME NOT NULL ,
`
pagVARCHAR100 NOT NULL ,
PRIMARY KEY ( `numero` ) ,
UNIQUE (`direccion` )
ENGINE MYISAM DEFAULT CHARSET=cp1251
y en el primer caso los datos salen algo asi
Código PHP:
INSERT INTO `direc_httpVALUES ('http://www.google.com','2009-03-17 08:39:19','TE'),('http://www.yahoo.com','2009-03-17 08:39:19','TE')... 
y necesito que salgan asi para ser ingresadas en la nueva db
Código PHP:
INSERT INTO `direc_httpVALUES ('1','http://www.google.com','2009-03-17 08:39:19','TE'),('2','http://www.yahoo.com','2009-03-17 08:39:19','TE')... 
no se si alguien pueda ayudarme o que conosca de algun sistema de migrado de BD que permita esto, gracias
  #2 (permalink)  
Antiguo 05/06/2009, 16:00
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, 6 meses
Puntos: 2658
Respuesta: Migrar base de datos

Tu problema no es exactamente con una base sino con una tabla, si me atengo a tu ejemplo.
Pero lo realmente importante que te estás perdiendo es que al ser el ID un campo autoincremental no es necesario que sea ingresado, ya que la numeración se irá creando a medida que la ingreses.
La única salvedad que debes tener en cuenta es que en futuros inserts debes indicar específicamente todos los campos menos el ID:
Código sql:
Ver original
  1. INSERT INTO virusdb(direccion, fecha, pag)
  2. VALUES('http://www.google.com','2009-03-17 08:39:19','TE'),
  3. ('http://www.yahoo.com','2009-03-17 08:39:19','TE')...
En este caso, la migración del contenido de una tabla resulta de sólo hacer esto:
Código sql:
Ver original
  1. INSERT INTO virusdb(direccion,fecha,pag)
  2. SELECT *
  3. FROM direc_http;

Incluso este caso no hubiese sido necesario para tu problema. Solamente necesitabas quitar de la segunda tabla la PK (sin borrar el campo), y agregarle una nueva con la propiedad de AUTO_INCREMENT. Casi mágicamente hubieses tenido la tabla deseada:
Código sql:
Ver original
  1. ALTER TABLE direc_http DROP PRIMARY KEY;
Código sql:
Ver original
  1. ALTER TABLE direc_http ADD COLUMN numero BIGINT UNSIGNED
  2. NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

Cuando se crea una clave autoincremental en una tabla que no la tiene, esta se numera en forma automática.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 07:08.