使用phpMyAdmin将CSV文件导入MySQL

时间:2014-05-22 19:38:18

标签: mysql csv phpmyadmin

我搜索并阅读了许多关于使用phpMyAdmin 2.8.0.1将CSV文件导入MySQL数据库的帖子/文章,并且它们听起来很简单,实际上并非如此。我没有做任何事情。

我有一个包含2列的表,两列都定义为NOT NULL。主索引配置为使用两个列。我有很多CSV文件要导入,但我先从小文件开始。以下是我的CSV数据文件示例:

type    description
T   Antarctic Territory
T   Dependency
T   Independent State
T   Proto Dependency
T   Proto Independent State

导入只有17行,但通常我会插入0行,有时我会插入1行,但格式错误。我的意思是第1列为空白,第2列包含两列的数据,顺序错误。这是我的导入尝试生成的SQL:

LOAD DATA LOCAL INFILE '/var/php_sessions/uploads/phpiptDPV' REPLACE INTO TABLE `country_types`
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1
LINES (
`type` ,
`description`
)# MySQL returned an empty result set (i.e. zero rows).

谁能看到我哪里出错了?我花了几天时间研究和尝试不同的东西,但我已经准备好抛出phpMyAdmin了。

3 个答案:

答案 0 :(得分:9)

问题在于LOCAL。 " local"有两个概念。在这种情况下。您可能意味着CSV文件位于运行浏览器访问phpMyAdmin的工作站上。

LOAD DATA LOCAL INFILE语句正在运行phpMyAdmin的Web服务器上运行。所以它在Web服务器上寻找文件。当我尝试这个时,我得到了phpMyAdmin的错误输出:

#7890 - Can't find file '/Users/billkarwin/t.csv'. 

您可以尝试使用phpMyAdmin的导入功能。

  1. 选择你的桌子。
  2. 点击导入标签。
  3. 点击选择文件按钮浏览到您当地的csv文件。
  4. 使用LOAD DATA'选择' CSV 格式
  5. 选择其他格式特定选项
  6. 点击开始
  7. enter image description here

答案 1 :(得分:3)

以下步骤对我有用。

  • 将文件导入虚拟数据库(即不要选择任何数据库)。

  • 点击导入并选择要加载数据的相应CSV文件。

  • phpMyadmin将创建一个数据库和一个适当的表来保存数据。

  • 点击导出并选择SQL格式

  • 您将下载一个SQL文件。

  • 该文件将具有相应的查询以将数据插入到您的表中。

确保更改默认表名和列名以匹配表名和列名。

答案 2 :(得分:-1)

我终于找到了一种从Excel导入phpMyAdmin的简单可靠的方法。以OpenDocument电子表格格式保存在Excel中。以相同的格式导入phpMyAdmin。噗,它就在那里。它将列名设置为A,B,C,......等等,但除此之外它完美无瑕。

我在另一天摆弄了引号,逃脱,尾随标签,额外回车,分隔分隔符和专业数据库摔跤。