Problemas com ALTER TABLE
.
ALTER TABLE
altera uma tablea para o conjunto de caracteres atual. Se você obter um erro de chave duplicada durante ALTER TABLE
, então a causa é que o novo conjunto de caracteres mapeia duas chaves para o mesmo valor ou que a tabela está corrompida, caso no qual você deve fazer um REPAIR TABLE
na tabela.
Se ALTER TABLE
finalizar com um erro com este:
Error on rename of './database/name.frm' to './database/B-a.frm' (Errcode: 17)
o problema pode ser que o MariaDB falhou em um ALTER TABLE
anterior e existe uma tabela antiga chamada A-algumacoisa
ou B-algumacoisa
. Neste caso, vá até o diretório de dados do MariaDB e delete todos os campos que tenham nomes iniciando com A-
ou B-
. (Você pode quere movê-los para algum lugar em vez de deletá-los.)
ALTER TABLE
funciona do seguinte modo:
- Cria uma nova tabela chamada
A-xxx
com as alterações pedidas. - Todos os registros da tabela antiga são copiadas para
A-xxx
. - A tabela antiga é renomeada com
B-xxx
. A-xxx
é renomeada com o nome da sua tabela antiga.B-xxx
é deletada.
Se algo der errado com a operação de renomeação, o MariaDB tenta desfazer a mudança. Se algo der seriamente errado (isto não deve acontecer, é claro), o MariaDB pode deixar a tabela antiga como B-xxx
, mas uma simples renomeação no nível do sistema deve trazer o seus dados de volta.