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

健身日志APP数据库插入报错:SQLiteException语法错误求助

解决SQLite列名含空格导致的插入错误

嘿,这个问题我太熟了!你遇到的是SQLite里标识符(列名/表名)包含空格引发的语法错误,咱们快速搞定它:

错误原因拆解

你的INSERT语句里写了INSERT INTO workout_table(Workout Name) VALUES (?),SQLite编译时会把Workout当成列名,后面的Name就成了无意义的语法碎片,直接触发syntax error(代码1),这就是为啥APP弹出错误然后崩溃。

两种解决方案

方案1:修改列名(最推荐,长期规范)

把带空格的列名改成数据库通用的蛇形命名法(小写字母+下划线),比如Workout Name改成workout_name,从根源避免这类问题:

-- 先更新你的建表语句(如果还没上线,直接改;上线了要做数据库迁移)
CREATE TABLE workout_table (workout_name TEXT);

-- 然后把INSERT语句改成
INSERT INTO workout_table(workout_name) VALUES (?)

方案2:包裹带空格的列名(临时救急)

如果不想修改现有列名,就用**反引号(`)**把带空格的列名包裹起来,明确告诉SQLite这是一个完整的标识符:

INSERT INTO workout_table(`Workout Name`) VALUES (?)

注:也可以用双引号("),但需要确保SQLite的QUOTED_IDENTIFIERS模式开启,反引号的兼容性更稳。

小提醒

以后数据库命名尽量避开空格、特殊字符,用蛇形命名(比如user_id、training_log),能少踩很多语法坑哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:09:47