Skip to content Skip to sidebar Skip to footer

Sqlite Syntax Error Near "create Table"

Here's my code: String CREATE_DATABASE = 'CREATE TABLE ' + TABLE_NAME + '(' + KEY_ID + ' INTEGER PRIMARY KEY AUTOINCREMENT, ' + 'title TEXT, '+

Solution 1:

The CREATE TABLE syntax is all right as you've posted it.

I suspect there's a non-breaking space (ASCII 0xA0) between CREATE and TABLE. Replace it with the regular space (ASCII 0x20). That would explain the syntax error you posted: parser is treating CREATE TABLE as a single unknown token and not as two separate known tokens CREATE and TABLE.

What is definitely wrong is that you call db.close() on the SQLiteDatabase db passed in as a parameter to your function. You should only close databases you opened yourself and closing it this way will lead to an exception, albeit a different one.

Solution 2:

Try this code in your onCreate method.

  1. Remove AUTOINCREMENT for KEY_ID as it is already declared as Primary KEY.
  2. Remove ";" you placed just after the last bracket in string i.e. second last semicolon in string CREATE_DATABASE.
  3. Remove db.close() from oncreate()

Code To Replace: String CREATE_DATABASE = "CREATE TABLE "+TABLE_NAME+ " ( "+KEY_ID+" INTEGER PRIMARY KEY, "+KEY_TITLE+"TEXT, "+KEY_AUTHOR+"TEXT, "+KEY_STATE+"TEXT )"; db.execSQL(CREATE_DATABASE);

Solution 3:

In SQLite, a column declared integer primary key will auto increment, so try removing that:

StringCREATE_DATABASE="CREATE TABLE " + TABLE_NAME + "("  + 
        KEY_ID + " INTEGER PRIMARY KEY, " + 
        "title TEXT, "+
        "author TEXT, "+
        "state TEXT);";

See this answer for reference.

Post a Comment for "Sqlite Syntax Error Near "create Table""