Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como atualizo uma tabela para adicionar uma chave primária e atualizar todas as linhas existentes com IDs incrementados?


Depois de adicionar uma nova coluna de ID (não defina como chave primária ainda e não ative o incremento automático), execute:
SET @index = 1;
UPDATE tablename SET ID = (@index:[email protected]+1);

Isso define um valor de ID de incremento a partir de 1 em cada uma de suas linhas existentes, resolvendo assim o problema de chave duplicada que você enfrentaria se tentasse inserir uma nova coluna de chave primária após os dados já terem sido inseridos.

Feito isso, você pode definir a coluna ID como chave primária com incremento automático.