2014-02-08 8 views
5

Я работаю в базе данных Android SQLite. Я обновляю его с версии 1 до версии 2. Метод onUpgrade вызывается как ожидалось.SQLite Добавление столбца со значением по умолчанию

Мой код:

sqLiteDatabase.execSQL("ALTER TABLE " + Contracts.DateActivities.TABLE_NAME + " ADD COLUMN " + Contracts.DateActivities.C_GROUP + " INTEGER DEFAULT 0;"); 

я получаю ту же ошибку:

Caused by: android.database.sqlite.SQLiteException: near "group": syntax error (code 1): , while compiling: ALTER TABLE DateActivities ADD group INTEGER DEFAULT 0 

Что я делаю неправильно?

Другие варианты я пробовал:

sqLiteDatabase.execSQL("ALTER TABLE " + Contracts.DateActivities.TABLE_NAME + " ADD COLUMN " + Contracts.DateActivities.C_GROUP + " INTEGER DEFAULT 0;"); 
sqLiteDatabase.execSQL("ALTER TABLE " + Contracts.DateActivities.TABLE_NAME + " ADD COLUMN " + Contracts.DateActivities.C_GROUP + " int DEFAULT 0;"); 
sqLiteDatabase.execSQL("ALTER TABLE " + Contracts.DateActivities.TABLE_NAME + " ADD " + Contracts.DateActivities.C_GROUP + " INTEGER DEFAULT 0;"); 
+0

Я подозреваю, что ** Contracts.DateActivities.C_GROUP ** является «GROUP» (или «group» или «Group "или ... обложка не имеет значения), который является зарезервированным ключевым словом для SQLite ... и не может использоваться для имени столбца –

+0

Oooh wow. Я этого не понимал. Я попробую вариант – Sababado

+0

Это сделало. Если вы напишете ответ с тем, что вы сказали в комментарии, я буду отмечать его как ответ. – Sababado

ответ

4

Я подозреваю, что Contracts.DateActivities.C_GROUP является "GROUP" (или "группа" или "Группа" или ... корпус не имеет значения) , которое является зарезервированным ключевым словом для SQLite ... и не может использоваться для имени столбца

+1

Я изменил его из 'group' в' collection', и все хорошо. – Sababado

Смежные вопросы