Как сделать дамп mysql с сохранением связей таблиц?

Делаю дамп бд через phpmyadmin, потом разворачиваю на другом сервере, но связи ключей не сохраняются.
Как правильно дамп сделать, что бы ключи сохранились?
  • Вопрос задан
  • 2978 просмотров
Решения вопроса 1
Похоже, проблема в том, что PhpMyAdmin не пишет в файл экспорта инструкции серверу, чтобы тот забил на проверку ограничений. По-хорошему, в начале SQL-файла должна быть примерно такая строка:

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;


А в конце — такая:

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;


Здесь «40014» — это номер версии сервера; в данном случае проверка будет отключаться для всех версий выше 4.0.14.

Если проверку не отключать, то связи могут не образоваться во время импорта.

PhpMyAdmin, кстати, может и сам добавить эти инструкции. Для этого на странице экспорта нужно выбрать способ экспорта «Обычный - отображать все возможные настройки», а в разделе «параметры формата», чуть ниже, поставить галочку напротив пункта «Отключить проверку внешних ключей».

По-умолчанию PhpMyAdmin этого не делает. Поэтому связи и не импортируются потом нормально.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А штатный mysqldump разве не сохраняет?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы