我有不同mysql实例上的表。我想从mysql实例导出一些数据作为csv,并使用导出的csv数据在表上执行左连接。我怎样才能做到这一点?
答案 0 :(得分:1)
令人惊讶的是,MySQL可以实现,您需要完成几个步骤。
CSV
引擎和所需的表格布局创建模板表。这是您将CSV文件导入的表。例如,使用CREATE TABLE yourcsvtable (field1 INT NOT NULL, field2 INT NOT NULL) ENGINE=CSV
。请注意NULL
引擎不支持CSV
值。
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中加以考虑。
只要格式良好,MySQL就可以在其他服务器或其他应用程序上创建CSV文件。
答案 1 :(得分:0)
如果将其导出为CSV,则不再是SQL,它只是普通的行数据。建议您导出为SQL,并导入第二个数据库。