phpMyAdmin не экспортирует структуры базы данных по внешним ключам

У меня есть список таблиц в MySQL с ограничениями внешнего ключа. При экспорте все таблицы вместе с представлениями, функциями и процедурами экспортируются в алфавитном порядке.

Когда я импортирую экспортированный таким образом SQL, я застреваю с ошибкой «Таблица ограничений внешнего ключа не найдена», хотя структура требуемой таблицы приведена ниже в листинге. Я хочу экспортировать их по порядку, чтобы они поддерживали все ссылки в структуре.

Как это можно сделать с помощью MySQL?

0

Решение

Невозможно экспортировать таблицы в порядке, учитывающем «внешние ключи», если только вы не экспортируете таблицы по отдельности. Затем импортируйте таблицы из отдельного экспорта в нужном вам порядке. (Обратите внимание, что база данных может содержать циклические ссылки на внешние ключи, где нет порядка, в котором таблицы были бы в порядке «внешнего ключа».)


(Как ответ на несколько иной вопрос …)

Обходной путь для ошибки импорта должен запрещать применение внешних ключей в течение всего процесса импорта. Настройка foreign_key_checks переменная в 0 отключает принудительное использование внешних ключей; чтобы снова включить, установите переменную в 1.

Например:

SET FOREIGN_KEY_CHECKS = 0;

-- import tables
create table ...
insert into ...
create table ...
insert into ...

SET FOREIGN_KEY_CHECKS = 1;
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]