【发布时间】:2011-01-24 04:26:17
【问题描述】:
我们最近改进了生产数据库的架构,更改了列名和索引等。我们还将存储引擎更改为 InnoDB 以利用事务和外键。
将数据从旧架构导入新架构的最佳方法是什么?请记住,列名已更改(包括主键)。
【问题讨论】:
我们最近改进了生产数据库的架构,更改了列名和索引等。我们还将存储引擎更改为 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';
参考文献:
否则,如果可能,只要列数相同,以下将完成这项工作:
insert into new-table select * from old-table;
如果列数不同,则:
插入新表 select col1,col2,... from old-table;
【讨论】: