2013-07-23 26 views
0

我想創建一個表的ID和使用這樣一個唯一的文本字段:如何使用SQLiteOpenHelper類創建查詢字符串?

@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) 

我該如何解決這個問題?

回答

1

默認情況下,SQlite中的Integer主鍵是AutoIncrement,因此請刪除Auto Increment。這裏是文檔SQLite FAQ

+0

謝謝,但如果我使用AUTOINCREMENT而不是AUTO_INCREMENT,那麼它工作。我在插入錯誤時遇到了插入值到數據庫的新問題...錯誤代碼:19 - Contraint失敗。可能只有一個主鍵,而且沒有UNIQUE另一個列可以存在於表中? – user2553773

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); 
} 
+0

謝謝。它可以,並且Peshal告訴我,autoincrement是默認的。 – user2553773

0

將AUTO_INCREMENT更改爲自動增量。

+0

謝謝。但插入值時出錯:禁止失敗。它可能是什麼? – user2553773

+0

我需要更多信息。 – outcast