我的文本文件是这样的。 https://drive.google.com/open?id=1faW_OkO7_VoEQL_gndFIOrJv2e4Ycuzo
我的桌子在这里。
CREATE TABLE news(
num INT auto_increment primary key,
link VARCHAR(150),
date INT,
title VARCHAR(150) unique,
description TEXT
);
我尝试
LOAD DATA INFILE 'test.txt'
INTO TABLE news
CHARACTER SET utf8mb4
FIELDS
TERMINATED BY ', ' OPTIONALLY ENCLOSED BY '"'
LINES
TERMINATED BY '\n' (link, date, title, description);
但不起作用,我的错误是什么?
答案 0 :(得分:1)
您的输入文件有四列,如下所示:
url,month,title,"description": data
CSV导入将在每个描述列的开头包含单词"description":
。
因此,从命令中删除OPTIONALLY ENCLOSED BY '"'
,您应该已经准备就绪。
顺便说一句,请确保您的表定义中提到了utf8mb4
字符集(否则您输入中的某些字符可能无法正确表示)。为了获得最佳结果,请不要依赖服务器默认值来选择字符集。
CREATE TABLE news(
num INT auto_increment primary key,
link VARCHAR(150),
date INT,
title VARCHAR(150) unique,
description TEXT
)
COLLATE 'utfmb4_general_ci';
答案 1 :(得分:0)
此错误是由于'
所引起的。我之前也遇到过同样的问题,并且通过简单的调整就解决了。
只需在'Fields'关键字之后立即使用Enclosed by子句。
因此,您的代码将类似于:
LOAD DATA INFILE 'test.txt'
INTO TABLE news
CHARACTER SET utf8mb4
FIELDS OPTIONALLY ENCLOSED BY '"'
TERMINATED BY ', '
LINES
TERMINATED BY '\n' (link, date, title, description);