【发布时间】:2016-03-03 13:25:45
【问题描述】:
我正在尝试使用以下 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.addEmployees(new Employee(id,from,to));
db.addGroup(new Group(Integer.valueOf(userId),name,session,groupId,groupName));
这两个查询都会引发以下错误消息
android.database.sqlite.SQLiteException:靠近“组”:语法错误 (代码 1): , 编译时: CREATE TABLE group(userId INTEGER PRIMARY KEY,name TEXT,sessionToken TEXT,groupId TEXT,groupName TEXT)
【问题讨论】:
-
group 是
sql中的保留关键字,因此将表名group更改为group_之类的名称 -
另一个选项是使用 ` 的转义组
-
另外
FROM和TO是保留的SQL关键字