【问题标题】:LOAD DATA INFILE LINES TERMINATD doesn't work with \nLOAD DATA INFILE LINES TERMINATD 不适用于 \n
【发布时间】:2021-11-10 07:24:18
【问题描述】:

我有一个 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' 行终止符加载文件。有什么想法吗?

表的创建表

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"

【问题讨论】:

  • 提供 1) 完整表的 CREATE TABLE; 2)文本文件数据示例(3-5行)。
  • 你使用的是什么操作系统?
  • @Akina 这只是错字,因为我在尝试所有组合时只是 '\n' 不起作用。所以,空间不是问题
  • @Akina 请重新打开我的问题,因为这只是一个错字。
  • 我没有这个权限。

标签: java mysql load-data-infile


【解决方案1】:

对我来说查询有效

加载数据本地文件'/home/vsafonov/testDir/test.csv' INTO TABLE express.objs 由 ',' 终止的字段由 '"' 包围 忽略 1 行;

默认终止符适用于我的“/n”。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 2023-01-05
    • 2011-05-06
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    相关资源
    最近更新 更多