InnoDB trabalhar por algum tempo, mas não outros
Pergunta
Eu estou no processo de troca de mais de um banco de dados para uma reescrita do meu programa e parte do que está escrevendo tanto um script de conversão e um script para criar novas tabelas.
Eu estou renomeando tabelas, mudando índices e, geralmente, alterando a maioria da tabela de alguma forma, parte do que é que eu estou mudando de MyISAM para InnoDB.
O script de conversão funciona perfeitamente, mas o script para criar novas tabelas cai em um ponto específico.
Query:
create table team_resources
(
amount double not null default 0,
resource int unsigned not null default 0,
team int unsigned not null default 0,
primary key (resource,team)
) ENGINE = InnoDB
erro 121 que é o erro apresentado quando um tabela não pode ser criado. O script é executado a partir de um arquivo de Python, mas eu recebo o mesmo erro tanto no meu programa de SQL e phpMyAdmin em ambos roteiro cru e o thingie forma ajudante assistente de tabela.
As tabelas todos convertidos para InnoDB muito bem por isso estou perplexo a respeito de porque ele tem problemas de criação de novos. Esta consulta funciona se eu tirar a parte InnoDB.
Todas as sugestões?
Solução
Bug 26507 lança alguma luz sobre este assunto. Looks como a criação / eliminação de tabelas não é bastante atômica.
Uma opção é fazer um mysqldump e tente carregar em um banco de dados recém-instalado.
Outra forma de lidar com este está descrita no fim do Bug 17546 , mas você deve verificar os problemas é com o arquivo frm.
Outras dicas
Eu sou capaz de executar essa multa declaração em um MySQL 5.0.32 instalar. Pode ser um bug que foi corrigido.