根据像http://reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/这样的博客,甚至在这里的一些评论中。
将数据库包含到项目中之前的第一步是将表的主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)
);
答案 0 :(得分:0)
无需重命名数据库中的任何列。 SQL允许列别名,如下所示:
SELECT integer_primary_key AS _id
...
唯一需要的是当您使用ListAdapter
显示从数据库查询的游标内容时。您必须在游标中有一个名为“_id”的整数主键列才能执行此操作
更好的是,每个SQLite数据库表都有一个名为“rowid”的隐式列。您甚至不必拥有自己的整数主键列。只需使用rowid,就像这样:
SELECT rowid AS _id
...
已编辑包含@ CL对工作联合的解释
显然,对于多种连接,这个技巧都行不通。但是,只要rowid在连接中的所有行上都是唯一的,它就可以正常工作。