Android Room:如何知道主键是否存在?
Android Room: How to know if a primary key exists?
使用 Android Room 库,如何编写一个 returns 布尔值指示数据库中是否存在主键的 Dao 方法?
sqlite pragma 包含此信息(如果列是主键,则列上的 pk=1)因此在其上执行与 sqlite_master 连接的查询(以获取数据库中的所有表)应该这样做。我的 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();
您可以通过以下代码计算和return(布尔值):
@Query("SELECT count(*)!=0 FROM PERSON WHERE UID = :uid ")
boolean containsPrimaryKey(int uid);
其中,uid -> 你的主键
人物-> 你的 table 姓名
它对我有用,希望对你也有用。
使用 Android Room 库,如何编写一个 returns 布尔值指示数据库中是否存在主键的 Dao 方法?
sqlite pragma 包含此信息(如果列是主键,则列上的 pk=1)因此在其上执行与 sqlite_master 连接的查询(以获取数据库中的所有表)应该这样做。我的 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();
您可以通过以下代码计算和return(布尔值):
@Query("SELECT count(*)!=0 FROM PERSON WHERE UID = :uid ")
boolean containsPrimaryKey(int uid);
其中,uid -> 你的主键
人物-> 你的 table 姓名
它对我有用,希望对你也有用。