4

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

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

4

1 回答 1

1
  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;

    如果列数不同,则:

    插入新表 select col1,col2,... from old-table;

于 2010-03-05T16:05:18.783 回答