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

PostgreSQL更新触发器异常:执行无报错但created_at字段未更新

问题原因及解决方案

你的触发器不生效有两个核心问题:

1. 触发器时机错误

你使用了AFTER UPDATE触发器,这类触发器是在行已经更新到数据库表之后才执行的,此时修改NEW变量的值不会对表中数据产生任何影响。必须改用BEFORE UPDATE,它会在行写入表之前执行,修改后的NEW值会被实际保存到表中。

2. 字段名不匹配

你目标是更新updated_at字段,但触发器函数里修改的是created_at,这导致实际更新的不是你想要的字段。


修正后的触发器函数

CREATE OR REPLACE FUNCTION update_updated_at_column() RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_at = NOW();
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

修正后的触发器配置

CREATE TRIGGER type_trigger_update_updated_at BEFORE UPDATE ON "type"
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 23:25:26