Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/06/2009, 16:00
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
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)