LOAD DATA INFILE报错#1265:length字段数据截断问题排查
解决LOAD DATA INFILE导入时的#1265数据截断错误
问题场景
执行以下SQL导入语句:
LOAD DATA INFILE 'Path/OfFile' INTO TABLE sample FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (file_path, name, size, length, pack_id);
出现错误:#1265 - Data truncated for column 'length' at row 1
CSV文件忽略表头后的首行数据为:
"C:\Path","Filename.wav","2230852","8","1"
表字段类型:
file_path、name:VARCHAR(256)size:BIGINT UNSIGNEDlength、pack_id:INTEGER UNSIGNED
错误原因
核心问题是**length是MySQL的保留关键字**,你直接在LOAD DATA语句的字段列表里使用length时,MySQL会把它解析成内置函数LENGTH(),而非表中的字段。这种解析错位导致数据无法正确映射到目标字段,最终触发数据截断报错。
解决方案
修改SQL语句,用反引号()包裹字段名length`,明确告知MySQL这是字段名而非函数:
LOAD DATA INFILE 'Path/OfFile' INTO TABLE sample FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (file_path, name, size, `length`, pack_id);
调整后即可正确映射字段,解决数据截断问题。
内容的提问来源于stack exchange,提问作者Diamaudix Audio Ltd.
相关产品推荐
相关产品推荐

