首页 > 解决方案 > 如何在房间数据库中实现sqlite查询?

问题描述

这是我想在房间数据库中使用的 SQLite 查询,这是第一个尝试插入数据,如果数据已经存在,则使用 id 更新数据

INSERT INTO books(id, title, author, year_published)  VALUES(@id, @title, @author, @year_published)
 ON DUPLICATE KEY UPDATE title = @title,  author = @author;

标签: androiddatabasesqliteandroid-room

解决方案


您可以使用OnConflictStrategy.REPLACE实现此目的

@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertBooks(vararg books: Book)

你必须指定 id id作为主键

@Entity(tableName = "book_table")
data class Book(
    @PrimaryKey val id: String,
    val title: String,
    val author: String,
    val year_published: Int
)

推荐阅读