我们最近改进了生产数据库的架构,更改了列名和索引等。我们还将存储引擎更改为 InnoDB 以利用事务和外键。
将数据从旧模式导入新模式的最佳方法是什么?请记住,列名已更改(包括主键)。
就像您更改了列名一样,您可以创建文件并导入。
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';
参考:
否则,如果可能,只要列数相同,以下将完成这项工作:
插入新表 select * from old-table;
如果列数不同,则:
插入新表 select col1,col2,... from old-table;