2013-04-10 37 views
2

我有一個在android應用程序中的一個表sqlite數據庫。當它使用下面顯示的語句創建時,有兩個列,KEY_CHECKBOX_STATUS和KEY_CHECKBOX_LABEL。 「ID」是創建的主鍵。是在Android中爲sqlite數據庫表自動生成的KEY_ID?它被稱爲「KEY_ID」?

如果在創建時沒有像下面的語句那樣顯式創建主鍵,它會自動創建嗎?並且名稱是「KEY_ID」?

//create table MY_DATABASE (ID integer primary key, Content text not null); 
    private static final String SCRIPT_CREATE_DATABASE = 
    "CREATE_TABLE IF NOT EXISTS " + MYDATABASE_TABLE + " (" + "ID INTEGER PRIMARY KEY AUTOINCREMENT, " + 
    KEY_CHECKBOX_STATUS + " BIT, " + KEY_CHECKBOX_LABEL + " TEXT NOT NULL);"; 

回答

0

Sqlite將創建一個"rowid"它是唯一的。你可以使用"rowid" or "oid" or "_rowid_"來訪問它。例如SELECT rowid as id ...
您可以在這裏閱讀更多http://www.sqlite.org/autoinc.html。請注意,rowid不區分大小寫。

+0

由於您的創建包含「ID整數主鍵」,您還可以將其作爲'ID'進行訪問,因此'ID'成爲另一個rowid的同義詞。 – Tom 2013-04-10 15:53:47

+0

是的,如果他創建了,在他的問題中,他問他是否沒有創建主鍵ID,如果他沒有,那麼他不能使用ID訪問rowid。 – 2013-04-10 16:08:52

+0

哦,哎呀 - 我糾正了。我會注意到,儘管我在其他SO帖子中讀過,最好聲明主鍵ID(即使你不需要它),只要讓Sqlite將它作爲rowid的別名來實現。 – Tom 2013-04-10 16:11:54

相關問題