1

I'm getting this RuntimeException when executing an AsyncTask:

Caused by: android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: INSERT INTO 'infrastructure' (lift,name,type,status,_id) VALUES ('2130837612','none','-','2130837600',0),('2130837612','none','-','2130837600',1),('2130837612','none','-','2130837600',2),('2130837612','none','-','2130837600',3),('2130837612','none','-','2130837600',4),('2130837612','none','-','2130837600',5)

All columns except _id are "text", _id is an integer and primary key.

This is where it crashes:

Cursor curtsr = db.rawQuery("SELECT COUNT(*) FROM 'Infrastructure'", null);
if (curtsr != null) {
    curtsr.moveToFirst();                      // Always one row returned.
    if (curtsr.getInt(0) == 0) {               // Zero count means empty table.
        String INSERT_INFRA_VALUES = "INSERT INTO 'Infrastructure' (lift,name,type,status,_id) VALUES ('2130837612','none','-','2130837600',0),('2130837612','none','-','2130837600',1),('2130837612','none','-','2130837600',2),('2130837612','none','-','2130837600',3),('2130837612','none','-','2130837600',4),('2130837612','none','-','2130837600',5)";
        db.execSQL(INSERT_INFRA_VALUES);
    }
    curtsr.close();
}

I can't find the reason why it's crashing.

Online SQLite lint tool https://sqliteonline.com/ isn't throwing any errors.

user1506104
  • 4,616
  • 2
  • 49
  • 67
Bart Ros
  • 419
  • 3
  • 13

1 Answers1

3

Comma-separated multiple VALUES insert was only introduced in sqlite 3.7.11 and chances are you are running on a device with older sqlite version.

laalto
  • 137,703
  • 64
  • 254
  • 280