如何使用SQLiteOpenHelper类创建查询字符串?

时间:2013-07-23 03:51:42

标签: android database sqliteopenhelper

我想创建一个带有ID和UNIQUE TEXT字段的表,例如:

@Override   
public void onCreate(SQLiteDatabase db) 
{   
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_POSTS + "("
    + KEY_ID + " INTEGER PRIMARY KEY AUTO_INCREMENT," + KEY_URL + " TEXT UNIQUE NOT NULL"+")";
    db.execSQL(CREATE_CONTACTS_TABLE);  
}

但这不起作用。

07-23 10:35:53.937: E/AndroidRuntime(19078): android.database.sqlite.SQLiteException: near "AUTO_INCREMENT": syntax error: CREATE TABLE posts(id INTEGER PRIMARY KEY AUTO_INCREMENT,url TEXT UNIQUE NOT NULL)

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

默认情况下,SQlite中的Integer主键是AutoIncrement,因此请删除自动增量。这是文档SQLite FAQ

答案 1 :(得分:0)

这将创建表,我在我的应用程序中测试它并且工作正常。

@Override   
public void onCreate(SQLiteDatabase db) 
{   
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_POSTS + " ("
    + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_URL + " TEXT UNIQUE NOT NULL"+")";
    db.execSQL(CREATE_CONTACTS_TABLE);  
}

答案 2 :(得分:0)

将AUTO_INCREMENT更改为自动增量。