2014-02-08 124 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 **是“组”或“组”或“组” “或...套管无关紧要),这是SQLite的保留关键字...并且不能用于列名称 –

+0

Oooh哇。我没有意识到这一点。我会尝试一个变体 – Sababado

+0

这样做。如果你在评论中写下了你所说的答案,我会将其标记为答案 – Sababado

回答

4

我怀疑Contracts.DateActivities.C_GROUP是“集团”(或“集团”或“集团”或者......套管无所谓) ,这是一个保留关键字为SQLite ...并不能用于列名

+1

我把它从'group'改成了'collection',它都很好。 – Sababado

相关问题