AUTOINCREMENT只允许在INTEGER PRIMARY KEY - android上使用

时间:2014-08-29 06:05:13

标签: android sqlite auto-increment

我试图在我的数据库中创建一个表格,其中ID是自动增量本身,但每当我尝试将AUTOINCREMENT关键字添加到我的查询中时,它告诉我:

  

只允许在INTEGER PRIMARY KEY

上使用AUTOINCREMENT

这是我的问题:

@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字时,它都能正常工作。

那么......你认为这是什么问题?

3 个答案:

答案 0 :(得分:26)

您需要在KEY_IDINTEGER

之间添加空格

所以改变

+ KEY_ID + "INTEGER PRIMARY KEY AUTOINCREMENT, "

+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "

答案 1 :(得分:5)

使用整数主键创建表,无需明确提及AUTOINCREMENT

e.g。

CREATE TABLE t1(
  a INTEGER PRIMARY KEY,
  C TEXT
); 

Insert into t1(C) values("Hello");

答案 2 :(得分:0)

像这样创建表在INTEGER之前放了一些空格....

"CREATE TABLE "+TABLE_NAME+" ("+KEY_ID+" INTEGER PRIMARY KEY AUTOINCREMENT)";