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

时间:2012-07-11 09:42:31

标签: mysql csv import

我有一个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 个答案:

答案 0 :(得分:130)

我猜你错过了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

答案 1 :(得分:65)

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

  1. 打开查询窗口
  2. SELECT * FROM [table_name]
  3. 从菜单栏中选择“导入”
  4. 按结果网格下方右下方的应用
  5. enter image description here

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

答案 2 :(得分:13)

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

也适用于mac。

答案 3 :(得分:1)

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

但是,您可以使用mysqlimport

示例:

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

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

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

答案 4 :(得分:0)

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

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

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

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

答案 5 :(得分:0)

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

您只需要打开表格(右键单击"选择行数限制10000和#34;)您将打开一个新窗口。在这个新窗口中,您将找到"导入图标"。

答案 6 :(得分:0)

您可以使用MySQL Table Data Import Wizard