Mysql
 sql >> Database >  >> RDS >> Mysql

Come si aggiorna una tabella per aggiungere una chiave primaria e aggiornare tutte le righe esistenti con ID incrementati?

Dopo aver aggiunto una nuova colonna ID (non impostarla ancora come chiave primaria e non attivare l'incremento automatico) esegui:

SET @index = 1;
UPDATE tablename SET ID = (@index:[email protected]+1);

Questo imposta un valore ID incrementale a partire da 1 su ciascuna delle tue righe esistenti, risolvendo così il problema della chiave duplicata che dovresti affrontare se provassi a inserire una nuova colonna di chiave primaria dopo che i dati sono già stati inseriti.

Fatto ciò, puoi impostare la colonna ID come chiave primaria con incremento automatico.