SQL:导出然后将数据导入新架构

时间:2012-09-04 04:10:35

标签: mysql sql data-migration

我正在尝试找出导出数据库表的最佳方法,然后将其导入已在完全独立的数据库中创建的NEW列。

将不再使用某些列,其他列具有不同的命名约定等。

这种方法的建议是什么?任何在线工具?

同样,新数据库表格不一样......我基本上需要能够将旧列分配给新列。

1 个答案:

答案 0 :(得分:0)

您可以使用FEDERATED存储引擎访问远程MySQL实例,然后使用INSERT ... SELECT复制数据。

如果这是一次性练习,不需要服务器建立这样的链接,那么将数据导出为TSV等格式(例如使用SELECT ... INTO OUTFILEmysqldump)然后重新导入在另一端(例如使用LOAD DATA INFILEmysqlimport)将是一个明智的解决方案。

这两种方法都可以让您在此过程中重新分配列名(并执行其他转换):

-- federated table approach
INSERT INTO localtable (colA, colB, colC)
SELECT colX, CONCAT('foo', colY), 100 + colZ FROM remotetable;

-- TSV approach
LOAD DATA INFILE '/path/to/file' INTO TABLE localtable (colA, @colY, @colZ)
SET colB = CONCAT('foo', @colY), colC = 100 + @colZ;