2016-03-03 82 views
0

我試圖使用下面的SQLite查詢創建表。創建數據庫時sqlite異常

private static final String CREATE_EMPLOYEE_TABLE = "CREATE TABLE " + TABLE_EMPLOYEE + "(" 
      + KEY_DOMAIN_ID + " INTEGER PRIMARY KEY," 
      + KEY_FROM + " TEXT," 
      + KEY_TO + " TEXT" + ")"; 

private static final String CREATE_GROUPS_TABLE = "CREATE TABLE " + TABLE_GROUPS + "(" 
     + KEY_USERID + " INTEGER PRIMARY KEY," 
     + KEY_NAME + " TEXT," 
     + KEY_SESSION_TOKEN + " TEXT," 
     + KEY_GROUP_ID + " TEXT," 
     + KEY_GROUP_NAME + " TEXT" + ")";` 

林使用以下代碼來添加元素爲db,

db.addEmployees(new Employee(id,from,to)); 
db.addGroup(new Group(Integer.valueOf(userId),name,session,groupId,groupName)); 

這些查詢的兩個拋出以下錯誤消息

android.database.sqlite.SQLiteException:鄰近「組「:語法錯誤 (code 1):,while compiling:CREATE TABLE group(userId INTEGER PRIMARY KEY,name TEXT,sessionToken TEXT,groupId TEXT,groupName TEXT)

+6

group是'sql'中的保留關鍵字,因此將表名'group'改爲'group_'之類的東西 – ELITE

+0

另一種選擇是用' – 4gus71n

+0

另外'FROM'和'TO'是保留的SQL關鍵字 –

回答

7

重命名變量

String TABLE_GROUPS = "group"

爲類似

String TABLE_GROUPS = "groups"

groupsql保留關鍵字。

Check here the list of reserved keywords in SQLite

+0

,但是在編譯時引發另一個異常'android.database.sqlite.SQLiteException:near「to::syntax error(code 1):INSERT INTO employee(to ,from,domainId)VALUES(?,?,?)' –

+0

有關爲何發生此錯誤的任何想法? –

+1

@你堅持使用保留關鍵字:'FROM'和'TO'是保留的SQL字。 –