【发布时间】:2014-06-16 08:37:37
【问题描述】:
我有不同 mysql 实例上的表。我想从 mysql 实例中将一些数据导出为 csv,并使用导出的 csv 数据对表执行左连接。我怎样才能做到这一点?
【问题讨论】:
标签: mysql
我有不同 mysql 实例上的表。我想从 mysql 实例中将一些数据导出为 csv,并使用导出的 csv 数据对表执行左连接。我怎样才能做到这一点?
【问题讨论】:
标签: mysql
令人惊讶的是,使用 MySQL 可以做到这一点,您需要完成几个步骤。
CSV 引擎和所需的表格布局创建一个模板表格。这是您将导入 CSV 文件的表。例如使用CREATE TABLE yourcsvtable (field1 INT NOT NULL, field2 INT NOT NULL) ENGINE=CSV。请注意,CSV 引擎不支持 NULL 值。
SELECT 以提取 CSV 文件。例如。 SELECT * FROM anothertable INTO OUTFILE 'temp.csv' FIELDS TERMINATED BY ',';
temp.csv 复制到您的目标MySQL 数据目录中作为yourcsvtable.CSV。此文件的位置和确切名称取决于您的 MySQL 设置。您不能在步骤 2 中直接在此文件中执行 SELECT,因为它已经打开 - 您需要在脚本中处理它。
FLUSH TABLE yourcsvtable; 重新加载/导入 CSV 表。
现在您可以按预期对 CSV 文件执行查询。
根据您的数据,您需要确保数据正确地用引号括起来或转义 - 这需要在第 2 步中加以考虑。
CSV 文件可以由 MySQL 在其他服务器上创建,也可以由其他应用程序创建,只要格式正确。
【讨论】:
如果将其导出为 CSV,它就不再是 SQL,它只是普通的行数据。建议你导出为SQL,然后导入第二个数据库。
【讨论】: