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));
In short:
In SQLite a column declared INTEGER PRIMARY KEY will autoincrement.There is noautoincrementkeyword in SQLite, that is why you are getting an error.You can find out more on SQLite FAQ.
EDIT: just writing
integer primary keyit is enough.SQLitewill automatically increment yourids.EDIT2: Your
onUpgrade()method should look like this :