Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как объединить две бд, имеющие таблицы связей, в одну? / 12 сообщений из 12, страница 1 из 1
08.10.2014, 16:50:55
    #38770689
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
Если просто добавить, то саморост индексов всё попутают и нарушаться связи.
Я пока догадался до увеличения индексов в одной из бд на одинаковое число, чтобы они стали больше, чем в другой бд и не заменились при слиянии.
Но тут два вопроса:
— как индексы из таблиц одной бд добавить в столбцы с саморастущими индексами таблиц другой бд как есть, без изменений?;
— как запросом увеличить всё на определённое число?
В общем трудно мне с этими связями, не знаю возможностей запросов в такой ситуации.
Подскажите, пожалуйста.
...
Рейтинг: 0 / 0
08.10.2014, 19:58:43
    #38770879
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
andrejkЕсли просто добавить, то саморост индексов всё попутают и нарушаться связи.
Я пока догадался до увеличения индексов в одной из бд на одинаковое число, чтобы они стали больше, чем в другой бд и не заменились при слиянии.
Но тут два вопроса:
— как индексы из таблиц одной бд добавить в столбцы с саморастущими индексами таблиц другой бд как есть, без изменений?;
— как запросом увеличить всё на определённое число?
В общем трудно мне с этими связями, не знаю возможностей запросов в такой ситуации.
Подскажите, пожалуйста.

мдя...попадос.

идеального решения нету тут только брать да думать, что и как можно сделать чтоб не пересеклися.

может просто брать из одной да вставлять в другую?
...
Рейтинг: 0 / 0
09.10.2014, 09:10:13
    #38771180
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
andrejk— как индексы из таблиц одной бд добавить в столбцы с саморастущими индексами таблиц другой бд как есть, без изменений?;
Никак. Возникнет дублирование, и процесс добавления обломится. Если при этом часть данных ляжет в таблицы - это трындец данным.

andrejk— как запросом увеличить всё на определённое число?
Разорвать связи. После чего выполнить апдейт данных - причём в порядке его уменьшения. Выполнить смещение текущего значения автоинкремента. И затем восстановить связи.
...
Рейтинг: 0 / 0
09.10.2014, 09:39:18
    #38771221
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
Ну по хорошему во все PK нужно добавлять ещё одно поле -- номер БД, и тогда можно будет слить две БД в одну без перекодирования первичных ключей. Это один из вариантов.

Если перекодировать -- другой вариант -- то это надо брать все независимые сущности, перекодировать их PK, запоминать при этом соответствие старых и новых ID-ов, а затем перекодировать все PK и FK в зависимых сущностях.

Можно (третий вариант, разновидность второго) написать процедуру добавления записей из одной БД в другую, с проставлением новых идентификаторов. Для каждой независимой сущнсти. И потом прогонять их для всех данных построчно.

В любом случае это очень сложная задача. Первый вариант наверное самый простой.
...
Рейтинг: 0 / 0
09.10.2014, 11:21:08
    #38771382
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
MasterZivНу по хорошему во все PK нужно добавлять ещё одно поле -- номер БД, и тогда можно будет слить две БД в одну без перекодирования первичных ключей. Это один из вариантов.
Но уникальный индекс на поле-автоинкремент на стороне "один" FK никуда не делся - коллизии неминуемы.
...
Рейтинг: 0 / 0
11.10.2014, 02:58:59
    #38773906
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
А если делать выборк из одной бд и записывать в другую, то как перебирать записи скриптом не по значениям в ключевом поле, а именно поочереди, ведь в значениях есть разрывы и много циклов будет вхолостую?
...
Рейтинг: 0 / 0
12.10.2014, 03:02:16
    #38774211
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
alex564657498765453,

спасибо за совет брать из одной таблицы и просто вставлять в другую. Я так и сделал. Написал на PHP скрипт, который собирал в массив связку данных из старой таблицы и просто всталял их в новую, а новые связи формировались уже сами.
...
Рейтинг: 0 / 0
12.10.2014, 13:49:40
    #38774299
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
andrejkЯ так и сделал. Написал на PHP скриптВ общем, сделал то, что советовал я, только, не зная сервера, на клиенте...
...
Рейтинг: 0 / 0
12.10.2014, 16:28:03
    #38774361
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
М-да, по моему сообщению действительно похоже, что я поблагодарил только одного советчика, но это не так, спасибо всем. Просто я указал на того, кто был первее)
...
Рейтинг: 0 / 0
12.10.2014, 16:31:40
    #38774363
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
Это неважно. Главное, что ты не смог использовать наиболее подходящий инструмент, и предпочёл более знакомый. Один раз, может, и не так страшно, но если это войдёт в привычку - беда...
...
Рейтинг: 0 / 0
12.10.2014, 16:37:14
    #38774366
Serzh007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
Я, наверное, не понял суть твоего варианта. Можешь повторить? Мне интересно, что я тут пропустил.
...
Рейтинг: 0 / 0
12.10.2014, 18:41:39
    #38774410
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить две бд, имеющие таблицы связей, в одну?
Всё, сделанное на ПХП, вполне мог сделать MySQL-сервер. И не пришлось бы гонять туды-сюды тонны данных.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как объединить две бд, имеющие таблицы связей, в одну? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]