С библиотекой Android Room, как мне написать метод Dao, который возвращает логическое значение, указывающее, существует ли первичный ключ в базе данных?
Прагма sqlite содержит эту информацию (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();