首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有OnConflictStrategy.REPLACE的安卓房间自动时间戳

问带有OnConflictStrategy.REPLACE的安卓房间自动时间戳
EN

Stack Overflow用户
提问于 2020-10-08 05:20:18
回答 1查看 172关注 0票数 0

房间是否支持自动时间戳?例如,我的表只有两个字段。一个是字符串"ABC",第二个是自动时间戳。完全相同的一行显示为"ABC",然后是OnConflictStrategy.REPLACE替换第一个字符串,并添加了一个新的时间戳和一个新的日期。有空房间吗?

EN

回答 1

Stack Overflow用户

发布于 2020-10-08 18:08:02

我不知道更新的内置方式。对于新行的插入,您可以为时间戳字段设置default value,但这对更新没有帮助。

您可以尝试下一步的方法(我不确定它们是否可以称为auto-timestamp):

模拟auto-timestamp,

  1. 在Dao中使用附加方法

代码语言:javascript
复制
@Insert(onConflict = OnConflictStrategy.REPLACE)  
fun insertAndUpdateTimestamp(foo: Foo)

fun insert(foo: Foo) { // <-- should be called from outside (Repository etc)
    foo.updated = [here set timestamp's value you need] // <-- updated - is timestamp field
    insertAndUpdateTimestamp(foo)
}

如果在foo实例中存在与数据库中已经存在的相同的主键,则行更新(在您的示例中为字符串主键- "ABC")。

使用Sqlite触发器(创建触发器,每次插入/更新时更新所需字段)的

  1. 方法。Here是一篇描述房间中的触发器的文章。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64252456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档