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

使用MariaDB时遇SERT拼写错误误报问题求助

MariaDB报错提示INSERT误写为SERT,但代码无拼写问题的解决方法

问题重现

执行INSERT语句时,MariaDB持续抛出以下错误:

分析过程中发现2个错误。语句开头异常(位置0附近的“SERT”);无法识别的语句类型(位置5附近的“INTO”)

执行的INSERT语句:

INSERT INTO foods (Food, Location, Image, Calories, Fats, Carbs, Sugar, Protein, Salt) 
VALUES
(
'! Hähnchen-Jackfruit Frikadellen mit Petersilie', 'Germany', 'https://images.openfoodfacts.org/images/products/400/478/607/8501/front_en.13.40.jpg', 160, 10, 2.5, 0.3, 13, 1.8
),
(
'#1 Pita Bread 14 Jack Junior', 'United States', 'https://images.openfoodfacts.org/images/products/007/659/230/0033/front_en.4.40.jpg', 206.89, 0, 44.82, 0, 6.89, 0.43
);
COMMIT;

此前仅执行过建表语句:

CREATE TABLE foods(
`Food` varchar(300) DEFAULT NULL,
`Location` varchar(300) DEFAULT NULL,
`Image` varchar(300) DEFAULT NULL,
`Calories` varchar(300) DEFAULT NULL,
`Fats` decimal(22,1) DEFAULT NULL,
`Carbs` decimal(22,1) DEFAULT NULL,
`Sugar` decimal(22,1) DEFAULT NULL,
`Protein` decimal(22,1) DEFAULT NULL,
`Salt` decimal(22,1) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

可能的原因及解决方法

  • 隐藏特殊字符干扰:语句开头的INSERT前可能存在不可见控制字符(如UTF-8 BOM、非打印ASCII字符),导致数据库解析时跳过开头的IN部分,仅识别到SERT。
    解决:将语句复制到支持显示所有字符的编辑器(如Notepad++,开启「显示所有字符」功能),检查并删除开头的隐藏字符;或手动重新输入INSERT INTO开头部分,避免复制粘贴带入异常字符。

  • SQL客户端解析/发送异常:部分SQL客户端在处理长语句或带特殊字符的语句时,可能出现发送截断或解析错误。
    解决:更换原生mysql命令行工具执行语句,或将语句拆分:先单独执行INSERT语句,再执行COMMIT。

  • 字符集不兼容问题:建表使用latin1字符集,而INSERT语句包含德语特殊字符(如ä),可能间接导致解析异常。
    解决:修改表的字符集为utf8mb4,同时确保客户端连接字符集一致:

    ALTER TABLE foods CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
  • 执行上下文异常:若之前的建表语句未正确执行或存在未闭合语句,可能破坏当前INSERT语句的解析上下文。
    解决:检查foods表是否已成功创建;重启数据库连接后重新执行INSERT语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:01:33