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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top