gpt4 book ai didi

haskell - Database.Persist 和 `lastUpdate` 字段

转载 作者:行者123 更新时间:2023-12-02 21:07:29 24 4
gpt4 key购买 nike

据我所知,Database.Persist 不处理任何自动更新字段 ( Yesod Book Persistent )。

但存在一个特殊情况,它是相关的(至少对我来说:P),它是 lastUpdate::UTCTime 字段(我喜欢它,并且我广泛使用它来了解数据更改)。

此外,此更新必须在数据库级别执行(如果不是,所有服务器都应该完美同步[这很难而且很弱],并且记录更新应该在事务内部完成,以将getTime 系统调用 [效率低下])。

我当前的解决方法是创建(手动)触发器。

你知道更好的方法吗?

谢谢!

最佳答案

因为看起来这对您很重要,所以依赖数据库的 now() 是最安全的,因为它将始终使用事务的开头作为返回值。如果您计算时间对于应用程序本身,您必须非常小心地在各处传递相同的值。

您可以查看 Haskell 的 esqueleto 库来编写 sql,这样您总是会对 lastUpdate 列进行额外的 set 调用。我认为它目前没有公开 sql now() 函数,因此您可能需要自己将其添加到库中。

关于haskell - Database.Persist 和 `lastUpdate` 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32756202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com