簡體   English   中英

如何為多列主鍵獲取唯一的_id列?

[英]How to get unique _id column for a multi-column primary key?

根據一些博客(例如http://reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/)的說法,甚至在這里的一些詢問者中也是如此。

在將datababe包含到項目中之前,第一步就是將表的主ID字段重命名為“ _id”,以便Android知道將表的ID字段綁定到何處。

具有組合主鍵的表應該怎么做假設我正在創建產品ID和商店ID之間的關系以分配其價格。

CREATE TABLE `Products-Stores` (
    `product`   INTEGER NOT NULL,
    `store` INTEGER NOT NULL,
    `price` INTEGER NOT NULL,
    PRIMARY KEY(product,store)
);

無需重命名數據庫中的任何列。 SQL允許這樣的列別名:

SELECT integer_primary_key AS _id 
   ...

僅當您使用ListAdapter來顯示從數據庫查詢的游標內容時,才需ListAdapter 為此,您必須具有一個整數主鍵列,該游標中的名稱為“ _id”

更好的是,每個SQLite數據庫表都有一個名為“ rowid”的隱式列。 您甚至不必擁有自己的整數主鍵列。 只需使用rowid,如下所示:

SELECT rowid AS _id 
   ...

編輯包括@CL對工作聯接的解釋

顯然,對於許多類型的聯接,此技巧均無效。 但是,只要行ID在聯接中的所有行上都是唯一的,就可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM