代码之家  ›  专栏  ›  技术社区  ›  DaveNOTDavid

如何更新房间数据库中实体内的某些列?

  •  0
  • DaveNOTDavid  · 技术社区  · 6 年前

    当通过主键引用数据行时,不是将新的实体对象作为参数传递给DAO接口函数以更新数据行,而是有方法更新 一个实体中只有一定数量的列,而不是所有列 ?我尝试只更新实体的几个列,但没有成功,如下所示:

    @Query("UPDATE media SET name = :name AND description = :description" +
            " AND uri = :uri AND text = :text AND media_type = :mediaType" +
            " WHERE id = :id")
    fun update(id: Int, name: String, description: String, uri: String, text: String, mediaType: String)
    

    。。。显然,“AND”关键字不起作用,因为只有第一个参数“name”得到了更新。

    1 回复  |  直到 6 年前
        1
  •  4
  •   CommonsWare    6 年前

    尝试:

    "UPDATE media SET name = :name, description = :description," +
            " uri = :uri, text = :text, media_type = :mediaType" +
            " WHERE id = :id"
    

    看见 the SQLite documentation 有关详细信息 UPDATE 语法。