You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

分隔符被转义时,如何将TXT文件加载到MariaDB?

解决MariaDB加载竖线分隔文件时转义符导致列偏移的问题

核心问题分析

你的数据行|number|text \|||中,\|是用来表示字段内的竖线,但MariaDB默认转义规则会将\|解析为普通竖线,导致这个竖线被误判为字段分隔符,进而引发后续列偏移。

可行解决方案

方案1:关闭默认转义,手动替换转义序列

通过关闭默认转义规则,让MariaDB将\|当作普通字符串处理,再通过REPLACE函数将其替换为目标竖线,同时避免分隔符误判。

示例SQL语句:

LOAD DATA INFILE '/绝对路径/你的文件.txt'
INTO TABLE 目标表名
FIELDS TERMINATED BY '|'
ESCAPED BY ''  -- 关闭默认反斜杠转义
LINES TERMINATED BY '\n'  -- 根据文件实际换行符调整,比如'\r\n'
(@col1, @col2, @col3, @col4, @col5)  -- 用用户变量接收所有列,数量需匹配表字段数
SET
  列1 = @col1,
  列2 = @col2,
  列3 = REPLACE(@col3, '\\|', '|'),  -- 将\|替换为|
  列4 = @col4,
  列5 = @col5;

方案2:明确指定转义规则(适用于默认规则未生效的情况)

如果方案1不适用,可明确指定反斜杠为转义符,确保MariaDB将\|识别为字段内的竖线而非分隔符。

示例SQL语句:

LOAD DATA INFILE '/绝对路径/你的文件.txt'
INTO TABLE 目标表名
FIELDS TERMINATED BY '|'
ESCAPED BY '\\'  -- SQL中需用双反斜杠表示实际的反斜杠转义符
LINES TERMINATED BY '\n'
IGNORE 1 LINES;  -- 文件包含表头时添加此行跳过

注意事项

  • 替换文件路径、表名、列名时需与实际环境一致
  • 确认文件的换行符类型(\n或\r\n),避免加载时出现行解析错误
  • 若表字段数量与文件列数不符,需调整用户变量的数量

内容的提问来源于stack exchange,提问作者Scorpia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:48:21