Android table creation Failure (near "autoincrement": syntax error)?

android, sqlite

Solution

In short: `In SQLite a column declared INTEGER PRIMARY KEY will autoincrement.` There is no `autoincrement` keyword in SQLite, that is why you are getting an error.

You can find out more on SQLite FAQ.

EDIT: just writing `integer primary key` it is enough. `SQLite` will automatically increment your `ids`.

EDIT2: Your `onUpgrade()` method should look like this :

  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (newVersion > oldVersion) {
            Log.w("MyAppTag","Updating database from version " + oldVersion + " to "
                    + newVersion + " .Existing data will be lost.");
            db.execSQL("DROP TABLE IF EXISTS " + MY_TABLE);
            db.execSQL("DROP TABLE IF EXISTS " + MY_TABLE2);
            onCreate(db);
        }

Problem

``` public static final String MYDATABASE_NAME = "MY_DATABASE"; public static final String MYDATABASE_TABLE = "MY_TABLE"; public static final String MYDATABASE_TABLE2 = "MY_TABLE2"; public static final int MYDATABASE_VERSION = 1; public static final String KEY_ID = "_id"; public static final String KEY_ID2 = "_id2"; public static final String KEY_CONTENT1 = "Content1"; public static final String KEY_CONTENT2 = "Content2"; public static final String KEY_CONTENT3 = "Content3"; //create table MY_DATABASE (ID integer primary key, Content text not null); private static final String SCRIPT_CREATE_DATABASE = "create table " + MYDATABASE_TABLE + " (" +KEY_ID + " integer primary key autoincrement, " + KEY_CONTENT1 + " text not null);"; private static final String SCRIPT_CREATE_DATABASE2 = "create table " + MYDATABASE_TABLE2 + " (" + KEY_ID2 + " integer autoincrement, " + KEY_CONTENT2 + " text not null, " + KEY_CONTENT3 + " text not null, " + " FOREIGN KEY ("+KEY_ID2+") REFERENCES "+MYDATABASE_TABLE+" ("+KEY_ID+"));"; ``` I can not find out what gives the following error, please help me out thank you. 09-29 13:41:19.760: ERROR/Database(334): Failure 1 (near "autoincrement": syntax error) on 0x218df0 when preparing 'create table MY_TABLE2 (_id2 integer autoincrement, Content2 text not null, Content3 text not null, FOREIGN KEY (_id2) REFERENCES MY_TABLE (_id));'. 09-29 13:41:19.770: DEBUG/AndroidRuntime(334): Shutting down VM 09-29 13:41:19.770: WARN/dalvikvm(334): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 09-29 13:41:19.791: ERROR/AndroidRuntime(334): FATAL EXCEPTION: main 09-29 13:41:19.791: ERROR/AndroidRuntime(334): java.lang.RuntimeException: Unable to start activity ComponentInfo{sep.com/sep.com.SepActivity}: android.database.sqlite.SQLiteException: near "autoincrement": syntax error: create table MY_TABLE2 (_id2 integer autoincrement, Content2 text not null, Content3 text not null, FOREIGN KEY (_id2) REFERENCES MY_TABLE (_id));

Original source