Certa vez ocorreu esse erro quando um amigo restaurava backup do mysql e infelizmente não tinha muita coisa na web para auxiliar a resolver o erro. A mensagem de erro é bem clara LOL se você for um desenvolvedor do mysql rsrsrs…
Descobri depois de muita pesquisa que esse erro ocorre porque a query de criação da tabela possui uma CONSTRAINT que tem o mesmo nome de uma outra CONSTRAINT de alguma tabela existente no banco.
Para resolver isso é só alterar o nome de uma das CONSTRAINT :p
Bom, agora está mastigadinho para vocês :p
August 15, 2009
gostei. resolveu meu problema.
mto obrigado
September 2, 2009
Estava passando por esse problema, nem imaginava que poderia ser isso.
Muito Obrigado.
October 9, 2009
Me ajudou a resolver meu problema também.
Obrigado
DNS primário: 200.149.55.142
DNS secundário: 200.165.132.154
October 24, 2009
Resolveu o meu problema.
Muito obrigado.
March 14, 2010
Valeu demais!
Também resolveu o meu problema.
Obrigado!
Opa, aqui também resolveu. \o/
Valew!
July 9, 2010
Pessoas, uma solução bem rápida e prática para isso, sem precisar renomear CONSTRAINT.
Afinal, tem gente que não sabe o que é CONSTRAINT (eu sei!).
O erro abaixo pode acontecer quando você vai (re)criar uma tabela que é do tipo InnoDB.
Can’t create table ‘nomeDoBanco.nomeDaTabela’ (errno: 121).
Tabelas do tipo InnoDB somente são realmente necessárias se você vai utilizar transações.
Se você não precisa usar transações, ou não sabe o que é transações, commit e rollback (então realmente não precisa de InnoDB), prefira usar tabelas do tipo padrão MyIsam, que são muito mais rápidas e ocupam menos espaço em disco, justamente por não utilizarem recursos de transações.
E antes que alguém diga que estou errado… não sou eu que estou inventando, está no manual do MySQL, veja no capítulo 7.
Se não concorda discuta com a Oracle. Sim, a Oracle! Não sabia que a Oracle comprou o MySQL ?!?
Enfim… voltando ao assunto…
Explicite na instrução SQL que cria a sua tabela que você quer usar o tipo MyISAM.
Calma, depois você poderá voltar ao InnoDB (se necessário).
O código para instruir a criar usando MyIsam é algo como:
DROP TABLE IF EXISTS `minhaTabela`;
CREATE TABLE IF NOT EXISTS `minhaTabela` (
`id` int(11) NOT NULL ,
`nome` varchar(100) NOT NULL
PRIMARY KEY (`id`)
) TYPE=MyIsam;
Se você não precisa de InnoDB… Pronto!!!
Apenas fazendo isso você já vai ver que a tabela foi criada e já é possível trabalhar com ela.
Mas se você precisa de InnoDB, ainda tem mais uma coisa a ser feita, alterar a tabela de volta para o tipo InnoDB.
Para isso basta usar o comando ALTER TABLE, assim:
ALTER TABLE `minhaTabela` ENGINE = InnoDB;
Possivelmente você vai receber um erro, com uma mensagem semelhante a essa:
/* SQL Error: Error on rename of ‘.\nomeDoBanco\#sql-618_15′ to ‘.\nomeDoBanco\minhaTabela’ (errno: 121) */
Palma, palma, não priemos cânico… basta executar o mesmo comando novamente ![]()
ALTER TABLE `minhaTabela` ENGINE = InnoDB;
Zé fini !!
Agora sua tabela é novamente InnoDB e você pode usar transações e usufruir da maior segurança de dados que o InnoDB oferece.
E não é só isso… futuramente não precisa mais realizar este procedimento todo, pois o MySQL já vai ter corrigido internamente as parada do bicho que precisava corrigir e já é!
MMJ
@camp_brasileiro
Valeu, ajudou em 5 horas de quebra-cabeça.
September 1, 2010
Muito obrigado, resolveu o meu problema!!
lol ai sim!! tava ficando doido aqui ja
October 29, 2010
Loko, valeu…
Obs.: Tá dificil trabalhar com o Mysql Workbench
November 17, 2010
Parabéns pelo artigo Noel. Ótima dica, resolveu o problema!
February 21, 2011
Cara não tenho nem como agradecer, sem palavras mesmo, e pensar que no Forum do MySql não achei porra nenhuma pra me ajudar, o Mysql Workbench dá umas no saco que eu vou te falar.
March 30, 2011
Muito bem observador, tava com mesmo problema é não sabia nem da onde vinha o erro. Muito Obrigado.
May 14, 2011
Show de bola! Resolveu meu problema!
June 1, 2011
vlw pela dica!
August 3, 2011
Muito obrigado. Excelente dica!!!
August 17, 2011
Obrigado.
September 20, 2011
Incrível, resolveu num “passe de mágica”.
Obrigado
September 20, 2011
hahaha.
Grande Noel!! Até aqui …
November 14, 2011
vlw foi muito útil!!!
Dica muito top. Parabéns.
Comments RSS TrackBack Identifier URI
Leave a comment






23 Comments