我试图找出哪种方式是导出数据库表的最佳方式,然后将其导入到在完全独立的数据库中创建的新列中。
有些列将不再使用,有些列有不同的命名约定,等等。
这种方法有什么建议?有什么在线工具吗?
同样,新的数据库表不一样......我基本上需要能够将旧列分配给新列。
我试图找出哪种方式是导出数据库表的最佳方式,然后将其导入到在完全独立的数据库中创建的新列中。
有些列将不再使用,有些列有不同的命名约定,等等。
这种方法有什么建议?有什么在线工具吗?
同样,新的数据库表不一样......我基本上需要能够将旧列分配给新列。
您可以使用FEDERATED
存储引擎访问远程 MySQL 实例,然后使用INSERT ... SELECT
复制数据。
如果这是一次性的练习,不需要服务器建立这样的链接,那么将数据导出为类似 TSV 的格式(例如使用SELECT ... INTO OUTFILE
or mysqldump
)然后在另一端重新导入(例如使用LOAD DATA INFILE
or 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;