Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQLite Adding Column With Default Value

I'm working in an Android SQLite DB. I'm upgrading it from version 1 to version 2. The onUpgrade method is getting called as expected.

My code:

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

I keep getting the same error:

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

What am I doing wrong?

Other variations I have tried:

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;");
like image 554
Sababado Avatar asked Oct 01 '22 15:10

Sababado


1 Answers

I suspect that Contracts.DateActivities.C_GROUP is "GROUP" (or "group" or "Group" or ... casing doesn't matter), which is a reserved keyword for SQLite... and can't be used for a column name

like image 156
Phantômaxx Avatar answered Oct 13 '22 11:10

Phantômaxx