Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hugo Borges_120734

Problemas com constraint

Recommended Posts

Galera estou usando um programa chamado SQLyog - 32 bit, muito bom por sinal. Bom estou pegando 2 BD em mysql, 1 esta bem atrasado que o outro, ou seja os 2 são os mesmos porem 1 BD eu criei novas tabelas e etc...


Agora preciso pegar tudo o que foi mudado e adicionado no novo BD e colocar no antigo, sem perder os dados.


O SQLyog - 32 bit tem esta opção, chamada de (schema synchronization tool), onde eu coloco o BD novo e o BD alvo.


Porem esta dando este erro abaixo.



Error Code: 1217

Cannot delete or update a parent row: a foreign key constraint fails



Então queria saber como deletar todas as constraint de um BD mysql, para que o SQLyog poça criar as novas tabelas no BD antigo.


Aguardo ajuda desde ja obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que com esse link você consegue fazer o que precisa.

http://fourtyten.blogspot.com.br/2009/06/how-to-drop-all-foreign-keys-in-mysql.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não necessariamente você vai rodar no server. O artigo mostra como rodar pelo client de linha de comando, mas você pode aproveitar a ideia e alguns comando e rodar direto no seu client.

Primeiro você precisa encontrar as FKs e as suas respectivas tabelas.

"SELECT TABLE_NAME, CONSTRAINT_NAME" \
"FROM information_schema.TABLE_CONSTRAINTS"\
"WHERE CONSTRAINT_TYPE='FOREIGN KEY' AND TABLE_SCHEMA='$schema';"\

Depois é só você criar os comando de drop concatenando os valores encontrados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá sim. Você só vai ter q pegar o resultado e montar em um bloco de notas da vida o script pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se for um caso de importação, vc pode desabilitar as fks e importar o banco, tipo assim:

 

SET FOREIGN_KEY_CHECKS=0;
--o resto dos sql

i hope that helps =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.