2011-09-20 9 views
6

Tengo un montón de tablas enormes que no tienen claves principales. (No me preguntes por qué) Adjuntaré un campo 'id' a cada tabla. Será un tipo entero. Más tarde, lo promocionaré a un índice no nulo de valor único y una clave principal.Agregar una clave primaria a una tabla MySQL y rellenarla automáticamente

Mi pregunta: ¿Hay alguna forma en MySQL (5 ish) Tenemos alrededor de un centenar de tablas, y las más grandes entre ellas tienen más de 1 millón de registros. Después de crear la nueva columna 'id', ¿hay alguna manera de tener el relleno de MySQL (es decir, agregar un valor a los registros existentes) en el campo 'id'? Prefiero ser capaz de hacer todo esto en MySQL. De lo contrario, tendré que escribir un script PHP para completar los registros existentes.

Gracias, Don!

Respuesta

12

Si lo hace un

ALTER TABLE table1 ADD COLUMN id INTEGER NOT NULL auto_increment PRIMARY KEY 

se auto rellenar la tabla con una clave principal auto_incrementing.

Puede tomar un tiempo en una mesa grande.

+1

No me di cuenta de que agregar un PK de incremento automático volvería a llenar las filas existentes. Esta genial. Muchas gracias. –

Cuestiones relacionadas