2011-09-08 11 views
7

Ho una tabella di database estremamente grande - quasi 20 milioni di record.PHPMyAdmin/MySql - Aggiungi campo ID e numeri di identificazione autopopolare

I record non hanno un numero ID univoco. Quindi, ho inserito il nuovo campo.

Ora, desidero popolarlo con i numeri ID, aumentando di 1, iniziando con il primo numero ID di 10.000,001.

FYI - Sto usando WAMP su una macchina locale e ho composto tutti i miei tempi massimi fino a 5000 secondi e ho composto diverse altre variabili in php.ini e mysql.ini per fare il caricamento in primo luogo (che ha richiesto più di 10 ore !!).

In passato, o con altri DB, avrei potuto esportare i dati in excel e quindi montare del testo per incollarlo nuovamente in phpmyadmin per AGGIORNARE i record. Questo va bene quando si lavora con i record 5K, o anche i record 100K, ma questo sembra ingestibile con 20 milioni di record.

Grazie in anticipo !!

risposta

16

basta eseguire queste due domande una dopo l'altra nella scheda SQL:

ALTER TABLE mytable AUTO_INCREMENT=10000001; 

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

MySQL quindi creare il campo id e riempirlo in modo sequenziale a partire da 10000001.

+0

+1, bastonatemi – Johan

+0

Questo è quello che ottengo per rispondere a una telefonata D – gview

+0

Grazie per la rapida risposta. – Kevin

0

Questo funziona in SQL Server, forse si può adattare a MySQL:

declare @value int 
set @value=10000000 

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

Sarà aggiornare tutte le righe di identificazione a partire da 10.000.001 con un incremento del 1.

Spero, almeno, dà alcune idee.

+0

Complicato senza motivo, funzionerà comunque. – Johan

0

Tutto quello che devi fare è impostare la colonna su AUTO_INCREMENT e mysql numererà le righe per te. Supponiamo che tu voglia nominare la tua nuova colonna "id".

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

È possibile emettere questi comandi nel pannello SQL di phpMyAdmin - basta lasciare fuori il punto e virgola alla fine.