.SQLiteException:near“,”:语法错误(代码1):,编译时:
我在想什么?用“,”的东西,但我似乎看错了地方。这是我的代码:.SQLiteException:near“,”:语法错误(代码1):,编译时:
private static final String DATABASE_CREATE =
"CREATE TABLE if not exists " + SQLITE_TABLE + " (" +
KEY_ROWID + " integer PRIMARY KEY autoincrement," +
KEY_CURSUS + "," +
KEY_ONDERDEEL + "," +
KEY_GAME + "," +
KEY_TIJD + "," +
KEY_WEB + "," +
KEY_CHECK + "," +
" UNIQUE (" + KEY_ROWID +"));";
这是我的错误:
Caused by: android.database.sqlite.SQLiteException: near ",": syntax error (code 1): , while compiling: CREATE TABLE if not exists Games_getset (_id integer PRIMARY KEY autoincrement,cursus,onderdeel,game,tijd,web,check, UNIQUE (_id));
重命名或自check
is a keyword in SQL引用check
列。
例如:
private static final String DATABASE_CREATE =
"CREATE TABLE if not exists " + SQLITE_TABLE + " (" +
KEY_ROWID + " integer PRIMARY KEY autoincrement," +
KEY_CURSUS + "," +
KEY_ONDERDEEL + "," +
KEY_GAME + "," +
KEY_TIJD + "," +
KEY_WEB + "," +
+ "`" + KEY_CHECK + "`," +
" UNIQUE (" + KEY_ROWID +"));";
是的,我同意你 – CRUSADER
谢谢laalto(和CRUSADER)! – user2378812
我通过将列命名为'cast'而犯了同样的错误。在阅读你的答案后,我意识到了错误。谢谢 –
您需要添加数据类型要定义你的表中的列。您已经添加了整数数据类型KEY_ROWID
却忘了添加数据类型为休息..
.........KEY_ROWID + " integer PRIMARY KEY autoincrement," +
KEY_CURSUS + " text," +
KEY_ONDERDEEL + " text," + ........
and so on...
这不是问题 - 只需指定名称即可。问题是使用保留字“check”作为混淆SQL解析器的列名称。 – laalto
尝试删除 “如果不存在” 在create table命令时,SQLite在Android版本4.0.4给我这个错误,而不是在4.4.2
运气。
在这里看:http://stackoverflow.com/questions/18718178/android-sqlite-database-column-defined-in-create-table-script-but-not-creating-o/18718292#18718292 –
列需要键入... – njzk2