我们最近改进了生产数据库的模式,更改了列名和索引等。我们还将存储引擎更改为InnoDB以利用事务和外键。
将数据从旧架构导入新架构的最佳方法是什么?请记住列名已更改(包括主键)。
答案 0 :(得分: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';
参考文献:
否则如果可能的话,只要列数相同,就可以执行以下操作:
从旧表中插入新表select *;
如果列数不相同,则:
从旧表中插入新表选择col1,col2,...;