Объедение двух баз

Тема в разделе "Базы данных", создана пользователем linpc, 21 апр 2013.

Статус темы:
Закрыта.
Модераторы: latteo
  1. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    Имеется два онлайн проекта игр, решили объединиться и перейти на один сервер. Возникла проблема с полем User то что ID могут совпадать или поле Login. Нам нужно их как то соединить, структуры тоже разные) Второе имеется поле inventar где вещи лежат по ID персонажам, нужно их сменить в соответствии как будут меняться ID поля user.
    Кто что может подсказать по этому поводу?
     
  2. tan_81

    tan_81 Постоялец

    Регистр.:
    18 окт 2006
    Сообщения:
    128
    Симпатии:
    30
    Сделайте клона своей базы
    update user_table set id=id+X (где X - этом максимальный ID проекта, с которым сливаете + 100 для верности. Ремарка - смотрите, чтобы эта операция была в меньшей по макс. ID базе, чтобы не получилось, что X не перекроет уровень вашего максимального ID в текущей базе)
    Таким же путем поднимите ID пользователей во всех других таблицах.
    И через insert into обязательно вместе с ID пользователя вставляйте данные в другую базу
     
    latteo нравится это.
  3. linpc

    linpc

    Регистр.:
    6 апр 2012
    Сообщения:
    178
    Симпатии:
    52
    Что то я Вас не понял... Но есть идея.
    Примерно так:
    1. Сделать структуры одинаковыми.
    2. Импорт через PHP
    3. $it=mysql_fetch_array(mysql_query("SELECT max(`id`) as `id` FROM `user` WHERE `type`='1'")); - Чтение последнего ID
     
  4. tan_81

    tan_81 Постоялец

    Регистр.:
    18 окт 2006
    Сообщения:
    128
    Симпатии:
    30
    Идея в том, чтобы в 1 из баз поднять все ID заведомо выше другой базы (не в 1, а во всех таблицах привязанных по ID) и потом спокойно перелить. А что Вы будете делать со своим чудо запросом я честно говоря затрудняюсь ответить
     
  5. wwwserfer

    wwwserfer Постоялец

    Регистр.:
    22 ноя 2007
    Сообщения:
    92
    Симпатии:
    26
    Кстати говоря - после объединения двух баз - способом, который описал tan_81 (сам недавно объединял таким образом два крупных форумных проЭкта) вероятно всего потребуется произвести поиск по новой "объединенной" базе на наличие клонов, определенным mysql-запросом. Ведь наверняка у вас будут дубликаты учеток..
     
  6. Mekc

    Mekc Писатель

    Регистр.:
    16 май 2013
    Сообщения:
    5
    Симпатии:
    0
    Подскажите пожалуйста каким образом можно перевести таблицы из Myism в InnoDB, при условии что базу удалять нельзя?
    Буду очень благодарен за ответ.
     
  7. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.549
    Симпатии:
    1.433
    ALTER TABLE `code` ENGINE=MyISAM;

    или для пущей безопасности сделать копию удалив потом исходную таблицу:
    Код:
    CREATE TABLE `copy` LIKE code;
    ALTER TABLE `copy` ENGINE=MyISAM;
    INSERT INTO `copy` SELECT * FROM code;
    
     
Статус темы:
Закрыта.