LOAD DATA INFILE LINES TERMINATD 不适用于 \n

LOAD DATA INFILE LINES TERMINATD doesn't work with \n

我有一个 csv 文件,我想将其导入 MySQL,但 LINES TERMINATED 不适用于“\n”。我尝试用'\r'或'\r\n'替换\n,但还是不行。

如果我在 HEX 编辑器中打开我的文件,很明显,我的 Java 应用程序(写入此文件)工作正常('\n' 终止符突出显示)。

但是当我运行

LOAD DATA LOCAL INFILE '/home/vsafonov/testDir/test.csv' 
INTO TABLE express.objs 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;

我明白了

如果我用一些符号(例如“;”)替换新行的“\n”,LOAD DATA INFILE 工作正常。但我不知道为什么无法使用 '\n' 行终止符加载文件。一些想法?

Table 的创建 TABLE

CREATE TABLE IF NOT EXISTS `test_objs` (
                                      `id` bigint(20) NOT NULL,
                                      `object_id` bigint(20) DEFAULT NULL,
                                      `next_id` bigint(20) DEFAULT NULL,
                                      PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;

我的文件示例:

id,object_id,next_id
"1866227","98363301","156715750"
"293","171","454"
"1890275","171","177646470"

对我来说查询有效

加载数据本地 INFILE '/home/vsafonov/testDir/test.csv' 进入 TABLE express.objs 由 ',' 终止的字段由 '"' 封闭 忽略 1 行;

默认终止符与我的“/n”配合得很好。

我的查询中的终结符按字面意思被接受(不明白为什么)。