我搜索并阅读了许多关于使用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了。
答案 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 :(得分:3)
以下步骤对我有用。
将文件导入虚拟数据库(即不要选择任何数据库)。
点击导入并选择要加载数据的相应CSV文件。
phpMyadmin将创建一个数据库和一个适当的表来保存数据。
点击导出并选择SQL格式
您将下载一个SQL文件。
该文件将具有相应的查询以将数据插入到您的表中。
确保更改默认表名和列名以匹配表名和列名。
答案 2 :(得分:-1)
我终于找到了一种从Excel导入phpMyAdmin的简单可靠的方法。以OpenDocument电子表格格式保存在Excel中。以相同的格式导入phpMyAdmin。噗,它就在那里。它将列名设置为A,B,C,......等等,但除此之外它完美无瑕。
我在另一天摆弄了引号,逃脱,尾随标签,额外回车,分隔分隔符和专业数据库摔跤。