使用Android Room库,我该如何编写一个Dao方法,该方法返回一个指示数据库中是否存在主键的布尔值?
答案 0 :(得分:1)
sqlite pragma包含此信息(如果column是主键,则在列上为pk = 1),因此对它执行与sqlite_master结合的查询(以获取db中的所有表)应该可以做到这一点。我的DAO语法有点生锈,但是查询有效
@Query("SELECT
count(*)!=0
FROM
sqlite_master AS m
JOIN
pragma_table_info(m.name) AS p
Where
p.pk=1")
public abstract bool findPrimaryKeyExistsInDB();
答案 1 :(得分:0)
您可以通过以下代码进行计数和返回(布尔值):
@Query("SELECT count(*)!=0 FROM PERSON WHERE UID = :uid ")
boolean containsPrimaryKey(int uid);
where, uid -> 你的主键
PERSON->你的表名
它对我有用,希望对你也有用。