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