Eu tenho uma tabela com cerca de 30 milhões de linhas no MySQL 5.5 usando o mecanismo de armazenamento InnoDB. Esta tabela possui uma chave estrangeira que se conecta a outra tabela com cerca de 3 milhões de linhas.
Desejo adicionar uma chave primária à tabela maior, mas não tenho certeza da melhor forma de fazer isso. Não há nenhuma coluna existente (ou conjunto de colunas) que eu possa usar para isso, então como devo fazer isso?
Eu vi algumas referências a um ID de registro interno do InnoDB, mas não encontrei se isso é acessível.
Caso contrário, talvez eu precise despejar e recarregar os dados, adicionando o id manualmente.
Obrigado.
esta pode ser a maneira errada de fazer isso, mas ..
você não poderia simplesmente alterar a estrutura da tabela,
adicionar uma coluna de chave primária à tabela
então...
escreva um script rápido para percorrer toda a tabela
adicionando um valor de incremento automático à nova coluna?
Aqui está como eu abordaria isso:
*Observação: se a tabela de origem for InnoDB, as restrições de chave estrangeira serão mantidas e sobreviverão à renomeação. Então você terá que fazer uma alteração para remediar isso.