Ignorar foreign keys & relacinamentos no mysql na hora de realizar backup
Posted on : 15-12-2009 | By : Wryel | In : mysql
0
Em uma das empresas que trabalhei, a gente estava tendo dificuldade na hora de exportar um banco de dados que possuia relacionamentos e dependêcias um pouco complexos. Acontecia que o script de backup gerado pelo mysqldump sempre exportava algumas tabelas FILHAS antes das tabelas PAIS.
Quando você tentava importar pra dentro utilizando o client binario do mysql, ou até mesmo o phpmyadmin, ele acabava perdendo muitas chaves estrangeiras e até mesmo dados. Segue a solução que se adequou para nós.
Quando exportar dados no mysqldump, faça:
mysqldump -h seuHost -u seuUsuario -p nomeDoBanco --disable-keys > nomeDoSeuBackup.sql |
Depois de exportado, abra o arquivo, e na primeira linha adicione:
SET foreign_key_checks = 0; |
e no final do arquivo:
SET foreign_key_checks = 1; |
Agora é só exportar normalmente o arquivo para dentro do mysql. Se preferir o client do mysql, o comando ficaria:
mysql -h seuHost -u seuUsuario -p nomeDoBanco < nomeDoSeuBackup.sql |



