首页 文章

如何将csv文件导入MySQL工作台?

提问于
浏览
80

我有一个CSV文件 . 它包含140万行数据,因此我无法在Excel中打开该csv文件,因为它的限制大约是100万行 .

因此,我想在MySQL工作台中导入此文件 . 这个csv文件包含像

"Service Area Code","Phone Numbers","Preferences","Opstype","Phone Type"

我试图在MySQL工作台中创建一个名为“dummy”的表,其中包含列

ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp.

CSV文件名为 model.csv . 我在workbench中的代码是这样的:

LOAD DATA LOCAL INFILE 'model.csv' INTO TABLE test.dummy FIELDS TERMINATED BY ',' lines terminated by '\n';

但是我收到了像 model.CSV file not found 这样的错误

7 回答

  • 1

    我猜你错过了ENCLOSED BY子句

    LOAD DATA LOCAL INFILE '/path/to/your/csv/file/model.csv'
    INTO TABLE test.dummy FIELDS TERMINATED BY ','
    ENCLOSED BY '"' LINES TERMINATED BY '\n';
    

    并指定csv文件的完整路径

    Load Data Infile - MySQL documentation

  • 128

    如果您有较小的数据集,GUI实现它的方法是:

    • 打开查询窗口

    • SELECT * FROM [table_name]

    • 从菜单栏中选择“导入”

    • 按结果网格下方右下角的“应用”

    enter image description here

    参考:http://www.youtube.com/watch?v=tnhJa_zYNVY

  • 0

    在SCHEMAS下的导航器中,右键单击您的架构/数据库并选择“表数据导入向导”

    也适用于mac .

  • 0

    目前无法在所有平台中导入CSV(使用MySQL Workbench),也不建议所述文件是否与MySQL服务器主机位于同一主机中 .

    但是,您可以使用mysqlimport .

    例:

    mysqlimport --local --compress --user=username --password --host=hostname \
    --fields-terminated-by=',' Acme sales.part_*
    

    在此示例中, mysqlimport 被指示加载名为"sales"的所有文件,其扩展名以"part_"开头 . 这是加载"split"示例中创建的所有文件的便捷方式 . 使用--compress选项可以最小化网络流量 . --fields-terminated-by = ','选项用于CSV文件, - local选项指定传入数据位于客户端 . 如果没有--local选项,MySQL将在数据库主机上查找数据,因此请始终指定--local选项 .

    AWS RDS documentation中有关于该主题的有用信息 .

  • 0

    如果服务器驻留在远程计算机上,请确保该文件位于远程计算机中,而不是本地计算机中 .

    如果文件位于mysql服务器所在的同一台机器上,请确保mysql用户具有读/写文件的权限,或者将文件复制到mysql架构目录中:

    在我的ubuntu案例中,它是:/var/lib/mysql/db_myschema/myfile.csv

    此外,与此问题无关,但如果您对新行有问题,请使用sublimeTEXT将行结尾更改为WINDOWS格式,保存文件并重试 .

  • 9

    这似乎有点棘手,因为它确实困扰了我很长一段时间 .

    您只需打开表格(右键单击“选择行 - 限制10000”),您将打开一个新窗口 . 在这个新窗口中,您将找到“导入图标” .

  • 64

    你可以使用MySQL Table Data Import Wizard

相关问题