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