[英]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.