我正在尝试在我的数据库中创建一个具有自动增量ID的表,但每当我尝试将AUTOINCREMENT关键字添加到我的查询时,它告诉我:
AUTOINCREMENT仅允许在INTEGER PRIMARY KEY上使用
这是我的查询:
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_TASKS + " ( "
+ KEY_ID + "INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_NOTETITLE + " TEXT, " + KEY_NOTECONTENT + " Text, "
+ KEY_STATUS + " INTEGER)";
db.execSQL(sql);
}
我也尝试写AUTO_INCREMENT,但后来我遇到了语法错误。
我发现这是问题的根源,因为每当我尝试删除AUTOINCREMENT字时,它都能正常工作。
那么......你认为这是什么问题?
你需要在KEY_ID
和INTEGER
之间添加一个空格
所以改变
+ KEY_ID + "INTEGER PRIMARY KEY AUTOINCREMENT, "
至
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
使用整数主键创建表,无需显式提及AUTOINCREMENT
EG
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
C TEXT
);
Insert into t1(C) values("Hello");
这样创建表在INTEGER之前放了一些空格....
"CREATE TABLE "+TABLE_NAME+" ("+KEY_ID+" INTEGER PRIMARY KEY AUTOINCREMENT)";