【问题标题】:how to insert an old timestamp in updated_at column in postgres?如何在 postgres 的 updated_at 列中插入旧时间戳?
【发布时间】:2019-07-10 10:29:24
【问题描述】:

我在 postgres 中有一个表,其中有一列名为 updated_at。此列会始终自动更新吗?是否可以在此列中插入较旧的时间戳,还是仅默认为查询运行的时间? (假设查询在下午 3:15 运行;我可以在 updated_at 列中插入下午 3:10 的时间戳吗?)

我正在使用 Rails 应用程序;所以我想使用我的 Rails 代码插入一个旧的时间戳(不确定这是否与我的问题相关,但还是想澄清一下)

【问题讨论】:

  • 这取决于列的填充方式。有默认值吗?有更新触发器吗?什么都没有?要正确回答,我们需要了解您的结构。
  • 没有更新触发器。没有默认值。我只是想从我的 Rails 代码中插入一条记录;我能够为所有字段插入值,但updated_at 似乎总是只有 SQL 运行的时间,而不是我尝试插入代码的时间。
  • 这两个时间戳有什么区别?当您向表中插入某些内容时,会调用 SQL 查询...
  • 查询在下午 3:15 运行,但我尝试在 updated_at 列中插入下午 3:10 的时间戳; SQL 运行后,updated_at 包含 3:15 pm 而不是我插入的值(3:10 pm)
  • 请向我们展示您的查询

标签: ruby-on-rails postgresql


【解决方案1】:

这种情况你应该使用来自 ActiveRecord::Persistence 的updated_at 方法,这将阻止 update_at 被更新:

user.update_columns(updated_at: Time.current)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    相关资源
    最近更新 更多