.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)); 
+0

在这里看:http://stackoverflow.com/questions/18718178/android-sqlite-database-column-defined-in-create-table-script-but-not-creating-o/18718292#18718292 –

+0

列需要键入... – njzk2

重命名或自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 +"));"; 
+0

是的,我同意你 – CRUSADER

+0

谢谢laalto(和CRUSADER)! – user2378812

+1

我通过将列命名为'cast'而犯了同样的错误。在阅读你的答案后,我意识到了错误。谢谢 –

您需要添加数据类型要定义你的表中的列。您已经添加了整数数据类型KEY_ROWID却忘了添加数据类型为休息..

.........KEY_ROWID + " integer PRIMARY KEY autoincrement," + 
       KEY_CURSUS + " text," + 
       KEY_ONDERDEEL + " text," + ........ 
and so on... 
+0

这不是问题 - 只需指定名称即可。问题是使用保留字“check”作为混淆SQL解析器的列名称。 – laalto

尝试删除 “如果不存在” 在create table命令时,SQLite在Android版本4.0.4给我这个错误,而不是在4.4.2

运气。