94

我有一个 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. 我在工作台中的代码是这样的:

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

但我收到一个错误model.CSV file not found

4

7 回答 7

144

我猜你错过了 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文件完整路径

加载数据文件 - MySQL 文档

于 2012-07-11T09:52:05.877 回答
70

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

  1. 打开查询窗口
  2. 选择 * 从 [table_name]
  3. 从菜单栏中选择导入
  4. 按结果网格右下方的应用

在此处输入图像描述

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

于 2014-02-13T06:18:08.510 回答
27

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

也适用于mac。

于 2016-03-12T04:21:55.747 回答
5

您可以使用 MySQL表数据导入向导

于 2018-03-12T10:49:48.673 回答
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 文档中提供了有关该主题的有用信息。

于 2015-07-08T13:01:45.127 回答
0

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

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

在我的情况下,在 ubuntu 中是:/var/lib/mysql/db_myschema/myfile.csv

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

于 2015-05-15T00:46:50.720 回答
0

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

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

于 2015-06-06T09:01:00.590 回答