如何将txt文件内容插入MySQL表的指定Payload列
实现方案
你可以通过以下两种常用方案实现单列导入文件内容:
方法1:使用LOAD_FILE函数直接插入(适合单文件导入场景)
这是最简便的单文件导入方式,只需满足以下前置要求:
- MySQL配置项
secure_file_priv允许读取value.txt所在目录,或直接将文件放到secure_file_priv指定的目录下 - value.txt文件大小不超过
max_allowed_packet配置的上限 - 运行MySQL的进程用户对value.txt拥有读取权限
执行SQL如下:
USE esb; INSERT INTO esb_payload_ml (ID, Payload) VALUES ( -- ID可自定义,示例为自动生成UUID,也可替换为你需要的固定字符串 UUID(), LOAD_FILE('/your/absolute/path/to/value.txt') );
注意:路径需填写文件的绝对路径,Windows系统下路径斜杠需要转义(如
C:\\files\\value.txt)。
方法2:使用LOAD DATA语句导入(适合批量导入或偏好LOAD类语法的场景)
LOAD DATA支持自定义字段映射、给未导入列赋值,无需整表导入,写法如下:
USE esb; LOAD DATA INFILE '/your/absolute/path/to/value.txt' INTO TABLE esb_payload_ml -- 关闭字段、行分隔逻辑,将整个文件内容作为单个字符串读取 FIELDS TERMINATED BY '' ENCLOSED BY '' LINES TERMINATED BY '' (@payload) -- 自定义ID值,将读取到的文件内容赋值给Payload列 SET ID = UUID(), Payload = @payload;
提示:如果文件存放在你本地而非MySQL服务器上,可将语句开头改为
LOAD DATA LOCAL INFILE,需提前确认MySQLlocal_infile配置项已开启。如果导入后出现乱码,可在语句中添加CHARACTER SET utf8mb4指定编码。
内容的提问来源于stack exchange,提问作者Chennai Cheetah
相关产品推荐
相关产品推荐

