2012-07-25 67 views
1

我试图运行此查询SQL负载数据的并发INFILE

LOAD DATA CONCURRENT INFILE 'C:\\Data-API.csv' INTO TABLE pbp_person 
FIELDS TERMINATED BY '\t' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES 
(email, first_name, last_name, title, company_name, address, city, state, zip, country, phone, vertical); 

,但我得到一个错误说....

SQL Error(29) File 'C:\Data-API.csv' not found (Errcode:2)

该文件是在正确的地方;发生了什么?

+1

您确定该文件在服务器***(MySQL正在运行)上可用***吗? – 2012-07-25 18:39:18

回答

1

服务器中的文件是?由于您尚未指定LOCAL,因此必须在服务器主机上指定该文件。

如果是在客户端,然后使用此:

LOAD DATA CONCURRENT *LOCAL* INFILE 'C:\\Data-API.csv' INTO TABLE pbp_person 
FIELDS TERMINATED BY '\t' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES 
(email, first_name, last_name, title, company_name, address, city, state, zip, country, phone, vertical); 

参考this

如果未指定LOCAL,则文件必须位于服务器主机上并由服务器直接读取。服务器使用以下规则来查找文件:

  • 如果文件名是绝对路径名,服务器将按给定的方式使用它。

  • 如果文件名是包含一个或多个主要组件的相对路径名,则服务器搜索相对于服务器数据目录的文件。

  • 如果给出没有前导组件的文件名,服务器将在数据库的默认数据库目录中查找该文件。

+0

谢谢雅各布....很好的回答 – user979331 2012-07-26 14:35:14