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

H2数据库执行INSERT语句报JdbcSQLSyntaxErrorException如何解决

报错原因

你的SQL语法报错核心原因是INSERT语句中VALUES后的字符串类型值没有使用英文单引号包裹,H2数据库会将无引号的内容识别为表名、列名这类标识符,而非你要插入的文本常量,因此触发语法校验异常。

修正要点

  • 所有varchar字符串类型的字段插入值都需要用英文单引号'包裹
  • 你原语句中的SMTP服务器地址拼写错误,demo.stmp.com应为demo.smtp.com,避免后续业务逻辑异常
  • 你提供的建表语句末尾缺少闭合的右括号,执行建表前需要补全

正确的SQL语句

插入语句

INSERT INTO smtp_data(smtp_server, smtp_username, smtp_password, smtp_from, smtp_to) 
VALUES ('demo.smtp.com', 'demousername', 'demopassword', 'fromdemo@mail.com', 'todemo@mail.com');

修正后的建表语句

create table if not exists smtp_data(
    id int primary key auto_increment, 
    smtp_server varchar(30) not null, 
    smtp_username varchar(30) not null, 
    smtp_password varchar(40) not null, 
    smtp_from varchar(20) not null, 
    smtp_to varchar(20) not null
);

补充注意

如果插入的文本值本身包含单引号,需要将单引号转义为两个连续的单引号,比如要插入文本test'val,需要写为'test''val',避免字符串被提前截断触发语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:06:04