You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pgAdmin 4中编辑字段时自动更新updated_at时间戳?

在PostgreSQL中实现修改特定布尔字段时自动更新updated_at时间戳

要实现手动修改默认值为false的布尔字段(如is_validated)为true时,自动更新updated_at列到当前时间戳,你可以通过触发器函数完成,具体步骤如下:

1. 若表中无updated_at字段,先添加该字段

如果你的表还没有updated_at列,执行以下SQL创建(默认值设为当前时间,确保新插入的记录也带时间戳):

ALTER TABLE your_table ADD COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

替换your_table为你的实际表名。

2. 创建触发器函数

这个函数会检查目标布尔字段是否被修改,若有变化则更新updated_at:

CREATE OR REPLACE FUNCTION update_updated_at()
RETURNS TRIGGER AS $$
BEGIN
  -- 仅当is_validated字段的值发生变化时更新时间戳
  IF OLD.is_validated IS DISTINCT FROM NEW.is_validated THEN
    NEW.updated_at = CURRENT_TIMESTAMP;
  END IF;
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

替换is_validated为你实际的布尔字段名。

3. 给表绑定触发器

将上面的函数绑定到目标表,设置为更新前触发:

CREATE TRIGGER trigger_update_updated_at
BEFORE UPDATE ON your_table
FOR EACH ROW
EXECUTE FUNCTION update_updated_at();

再次替换your_table为实际表名。

验证效果

完成以上操作后,在pgAdmin 4中手动修改is_validated字段为true时,对应的updated_at会自动更新为当前时间戳;修改其他字段则不会触发updated_at的更新,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者Ahmad Coachendo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:55:18