我正在开发一个需要使用Workbench将csv数据导入mysql表的项目。我尝试运行下面的命令。我没有收到任何错误,但是没有记录导入到表中。请注意,我尝试将已终止的行更改为import memoize from 'lodash.memoize';
const cache = memoize(req => {
return fetch(req).then(response => {
return response;
});
}, req => req.url);
function cacheFetch(input, init) {
return cache(new Request(input, init)).then(response => response.clone());
}
export default cacheFetch;
,同时尝试\n
,结果相同。
我很感激有关如何解决的任何建议。
这是我试过的查询:
\r
数据对import.csv
LOAD DATA LOCAL INFILE 'data-to-import.csv' INTO TABLE db.t1
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id,age,spns,pns,spns2,sns,ps,ss,gid,term,band)
db.t1定义
,18,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,19,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,20,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,21,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,22,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,23,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,24,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,25,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,26,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,27,0.455,0.62,0.774,1.083,2.408,3.702,1,10,1
,28,0.455,0.62,0.774,1.088,2.416,3.702,1,10,1
,29,0.455,0.62,0.792,1.121,2.489,3.702,1,10,1
答案 0 :(得分:1)
在查看SQL时,您的行终结器似乎可能有问题。
试试这个:
LOAD DATA LOCAL INFILE 'data-to-import.csv' INTO TABLE db.t1
COLUMNS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id,age,spns,pns,spns2,sns,ps,ss,gid,term,band)
如果您的文件来自Windows,则行终止符为CR / LF。你有它作为LF / CR。
如果文件来自* nux,您的行终止符只是一个换行符,在这种情况下,您的SQL将如下所示:
LOAD DATA LOCAL INFILE 'data-to-import.csv' INTO TABLE db.t1
COLUMNS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(id,age,spns,pns,spns2,sns,ps,ss,gid,term,band)
希望这有帮助!
我刚刚运行了以下代码:
drop schema if exists db;
create schema db;
use db;
CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`age` int(11) NOT NULL,
`spns` decimal(4,4) NOT NULL,
`pns` decimal(4,4) NOT NULL,
`spns2` decimal(4,4) NOT NULL,
`sns` decimal(4,4) NOT NULL,
`ps` decimal(4,4) NOT NULL,
`ss` decimal(4,4) NOT NULL,
`gid` int(11) NOT NULL,
`term` int(11) DEFAULT NULL,
`band` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOAD DATA LOCAL INFILE 'c:/temp/data-to-import.csv' INTO TABLE db.t1
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(id,age,spns,pns,spns2,sns,ps,ss,gid,term,band);
SELECT * FROM t1;
我从您发布的内容中复制了数据并将其放入我的临时文件夹中。工作得很好。
首先,你发布的数据没有标题行,所以我不知道你为什么会有IGNORE 1 LINES。
此外,尝试像我一样在文件名上添加一个路径,看看是否有效。
如果不是,请告诉我文件的来源。它仍然可能是行终止者问题。
好的,基于我们的聊天,您在Mac OSX上运行,并且行终止符是' \ r'。只要使用它,你就应该好好去。