2011-09-08 147 views
7

Tengo una tabla de base de datos extremadamente grande, casi 20 millones de registros.PHPMyAdmin/MySql - Agregar campo de ID y autopoblar los números de ID

Los registros no tienen un número de identificación único. Entonces, inserté el nuevo campo.

Ahora, me gustaría llenarlo con números de identificación, aumentando en 1, comenzando con el primer número de identificación que es 10,000,001.

FYI - Estoy usando WAMP en una máquina local y he marcado todos mis tiempos máximos hasta 5000 segundos y marqué varias otras variables en php.ini y mysql.ini para realizar la carga en primer lugar (que tomó más de 10 horas !!).

En el pasado, o con otras bases de datos, podría haber exportado los datos a Excel y luego aumentado algo de texto para volver a pegarlo en phpmyadmin para ACTUALIZAR los registros. Esto está bien cuando se trabaja con registros de 5K o incluso 100K, pero parece imposible de controlar con 20 millones de registros.

Gracias de antemano!

Respuesta

16

Sólo tiene que ejecutar estas dos preguntas, una tras otra en la ficha SQL:

ALTER TABLE mytable AUTO_INCREMENT=10000001; 

ALTER TABLE mytable ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; 

MySQL creará entonces el campo id y llenarlo de forma secuencial empezando por 10000001.

+0

+1, pásame – Johan

+0

Eso es lo que obtengo al contestar una llamada; D – gview

+0

Gracias por la respuesta rápida. – Kevin

0

Esto funciona en SQL Server, tal vez usted puede adaptarlo a MySQL:

declare @value int 
set @value=10000000 

update your_table 
set @value+=1,[email protected] 

se actualizará todos sus filas de identificación a partir de 10000001 aumentando en 1.

espero, al menos, da algunas ideas

+0

Complicado sin ninguna razón, aunque funcionará. – Johan

0

Todo lo que necesita hacer se establece que la columna sea AUTO_INCREMENT y mysql enumerará las filas por usted. Digamos que quiere que su nueva columna se denomine 'id'.

alter table yourtable auto_increment = 10000001; 
alter table yourtable add id int unsigned primary key auto_increment; 

Puede emitir estos comandos en el panel SQL de phpMyAdmin - acaba de dejar fuera el punto y coma al final.

Cuestiones relacionadas