MySQL Export «Тупая» версия базы данных (без ключей, без автоинкремента, только таблицы данных) - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь экспортировать довольно сложную базу данных MySQL с рабочего локального сервера для загрузки на онлайн-сервер, чтобы сотрудники могли ПРОЧИТАТЬ ТОЛЬКО данные внутри.

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

Итак ... Есть ли способ экспортироватьСтруктура баз данных MySQL (и, возможно, данных) без каких-либо ключей, сохраняя столбец автоинкремента, но просто обрабатывая его как любой другой столбец INT и удаляя ограничения внешнего ключа?

1 Ответ

0 голосов
/ 12 мая 2019

Вы можете экспортировать базу данных MySQL без параметров AUTO_INCREMENT следующим образом:

mysqldump --compatible no_field_options ... 

Я не знаю ни одного способа пропустить ограничения внешнего ключа.Но если вы используете mysqldump, экспорт делает SET FOREIGN_KEY_CHECKS=0; до создания каких-либо таблиц.Это позволяет создавать таблицы не по порядку.


Ваш комментарий:

Если вы действительно не можете разрешить объявления внешних ключей в определениях таблиц, вам придется редактироватьих из файла экспорта MySQL.Вы можете сделать это вручную с помощью любого текстового редактора или создать фильтр, используя sed или perl или другие инструменты.

В одном из ответов на есть пример команды sed Как мне вывести файл MySQL без внешних ключей через командную строку?

Это может быть прощеудалить ограничения в ваших таблицах перед экспортом базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...