Как создать скрипт, который может переносить базу данных в другую нормализованную базу данных - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть система с сотнями тысяч данных. Мне нужно перенести его в другую базу данных, но с другой структурой. Как я могу создать скрипт, который будет переносить базу данных в другую структуру.

Я пробовал csv, но мне нужно сделать несколько столбцов для внешнего ключа, потому что новая база данных очень нормализована

Пример

enter image description here

1 Ответ

1 голос
/ 26 апреля 2019

Это решение на чистом MySQL. Он учитывает, что вы прокомментировали, что категории: "в новой базе данных уже установлены" . Вы можете сделать insert-select следующим образом:

INSERT INTO database2.products (id, category_id, name)
SELECT p.id, 
       (SELECT c.id FROM database2.categories AS c WHERE p.category = c.category),
       p.name
FROM database1.products as p

Специальный трюк в подзапросе, где сравниваются поля категории.

ВНИМАНИЕ: не проверенный запрос. Сначала сделайте резервную копию!

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