0

我试图找出哪种方式是导出数据库表的最佳方式,然后将其导入到在完全独立的数据库中创建的新列中。

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

这种方法有什么建议?有什么在线工具吗?

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

4

1 回答 1

0

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

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

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

-- 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;
于 2012-09-04T04:26:21.820 回答