Миграция данных в MySQL из старой схемы в новую схему - PullRequest
3 голосов
/ 05 марта 2010

Недавно мы улучшили схему нашей производственной базы данных, изменили имена столбцов, индексы и т. Д. Мы также изменили механизм хранения на InnoDB, чтобы использовать транзакции и внешние ключи.

Каков наилучший способ импорта данных из старой схемы в новую схему? Помните, что имена столбцов изменились (включая первичные ключи).

1 Ответ

1 голос
/ 05 марта 2010
  1. Как будто вы изменили имена столбцов, вы можете создавать файлы и импортировать.

    SELECT * FROM old-table INTO OUTFILE '/path/to/filename.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'  LINES TERMINATED BY '\n'
    

    и затем вы можете сделать данные загрузки:

    LOAD DATA INFILE '/path/to/filename.txt' INTO TABLE new-table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'  LINES TERMINATED BY '\n';
    

    Рекомендации:

  2. В противном случае, если возможно, следующее будет выполнять работу, если количество столбцов одинаковое:

    вставить в новую таблицу select * from old-table;

    Если количество столбцов не одинаково, тогда:

    вставить в новую таблицу выберите col1, col2, ... из старой таблицы;

...