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

Android SQLite创建表报错:android.database.sqlite.SQLiteException语法错误

解决SQLite创建表的语法错误问题

嘿,我一眼就揪出问题所在啦!你的CREATE TABLE语句里藏着一个低级但容易犯的语法错误——on tuesday这个列名用了空格,SQLite解析到这里时,会把空格后的tuesday当成独立的语法单元,直接触发syntax error。

错误根源

你看其他列都是用下划线连接的命名格式(比如on_monday、on_wednesday),唯独on tuesday用了空格分隔。SQL对标识符(列名、表名这类)的规则是:如果包含空格或特殊字符,要么用下划线替代空格,要么用双引号/反引号包裹(但跨数据库兼容性差),否则会被解析器误判。

修正后的代码

只需要把on tuesday改成和其他列一致的on_tuesday即可,修正后的完整SQL语句如下:

CREATE TABLE SubjectTable(
    id INTEGER PRIMARY KEY,
    subject_name TEXT,
    on_monday INTEGER,
    on_tuesday INTEGER,
    on_wednesday INTEGER,
    on_thursday INTEGER,
    on_Friday INTEGER
);

额外小提示

如果特殊场景下必须使用带空格的列名(非常不推荐,会增加后续SQL编写的复杂度),可以用双引号包裹列名,比如:

"on tuesday" INTEGER

但这种写法在不同数据库系统中的支持度不一,还是下划线命名的方式更通用、更规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:58:01