Название: Объединить две базы Отправлено: Tooreagen от 06 Августа 2017, 15:25:43 Подскажите как это сделать? Может есть какой-то скрипт?
Название: Re: Объединить две базы Отправлено: Efendy от 07 Августа 2017, 08:57:08 Можно sql командами. Позже покажу, сейчас в командировке
Название: Re: Объединить две базы Отправлено: Tooreagen от 07 Августа 2017, 09:18:31 А когда примерно? Нужно дней 10 чтобы было готово, может проще перенести все вручную, у меня там 150 записей в той что перенести нужно.
Название: Re: Объединить две базы Отправлено: Efendy от 07 Августа 2017, 16:36:10 послезавтра
Название: Re: Объединить две базы Отправлено: elite от 07 Августа 2017, 22:45:32 так обсуждалось же, правда для н50
Название: Re: Объединить две базы Отправлено: Efendy от 09 Августа 2017, 11:13:37 В чем суть:
необходимо увеличить id всех пользователей в одной из баз на число, которое превышает максимальный id в другой базе. Допустим в одной базе id от 1 до 100500, а в другой базе id от 1 до 450. Для внимательных: только что я сказал "максимальный id в другой базе" - все правильно, максимальный id в первой базе не имеет значение. Берем круглое число, которое больше 450 - допустим 1000. Следовательно по итогу у нас должы id из одной базы быть в диапазоне от 1 до 450, в другой от 1000 и выше. Также на это число (1000) необходимо увеличить id юзеров в связанных таблицах (платежи, допданные и т.д). Итак: del - имя первой базы данных (в ней будет итоговый результат) nodeny - имя второй базы данных 1000 - число, на которое изменяются id в первой базе данных Выполняем: Код: update del.users set name=concat(name, '!'), id=id+1000; Код: update del.users set id=id+1000; Внимание! Вам нужно выполнить либо тот либо тот запрос, не оба! Увеличиваем id юзеров в таблице платежей: Код: update del.pays set mid=mid+1000 where mid>0; В таблице допданных: Код: update del.data0 set uid=uid+1000; В услугах: Код: update del.users_services set uid=uid+1000; Трафик: Код: update del.users_trf set uid=uid+1000; Если есть таблица привязки мак-ов к юзерам: Код: update del.mac_uid set uid=uid+1000 WHERE uid>0; Объедняем даннные: Код: insert into del.users (select * from nodeny.users); Если услуги (включая id) на обоих базах одинаковые, то просто копируем: Код: insert into del.users_services (select * from nodeny.users_services); Иначе вам нужно В БАЗЕ 2 заапдейтить id услуг так, чтобы они соответствовали услугам в базе 1, например: Код: update nodeny.users_services set service_id = 108 where service_id=3; Здесь я заменил услуг айдишники с 3 на 8, с 2 на 14. Обратите внимание на маневр с добавлением и отниманием сотни, это так надо, влом объяснять зачем. Начните пока с этого. Посмотрю какие там мелкие нюансы есть и дополню позже |