将mysql中的数据从旧模式迁移到新模式

时间:2010-03-05 15:51:27

标签: mysql schema migrate

我们最近改进了生产数据库的模式,更改了列名和索引等。我们还将存储引擎更改为InnoDB以利用事务和外键。

将数据从旧架构导入新架构的最佳方法是什么?请记住列名已更改(包括主键)。

1 个答案:

答案 0 :(得分:1)

  1. 如果您更改了列名,则可以创建文件并导入。

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

    然后你可以做LOAD数据:

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

    参考文献:

  2. 否则如果可能的话,只要列数相同,就可以执行以下操作:

    从旧表中插入新表select *;

    如果列数不相同,则:

    从旧表中插入新表选择col1,col2,...;