首页 > 解决方案 > 创建触发器更新

问题描述

创建一个触发器,在将数据插入 builds_result 表时自动将 apps 表的 updated_time 字段的值更新为当前日期和时间。在 apps.updated_time 上给出错误

create trigger upd after insert on builds_result for each row execute procedure new apps.updated_time = now();

标签: postgresql

解决方案


以下是如何设置触发器的简要概述。

首先创建触发函数:

CREATE OR REPLACE FUNCTION my_trigger_function()
    RETURNS TRIGGER AS
$BODY$
BEGIN
    UPDATE apps
    SET updated_time = NOW();

    RETURN NEW;
END
$BODY$
    LANGUAGE plpgsql;

很简单,只更新表(注意它会更新所有记录,这只是因为你没有说应该更新哪个特定记录)并返回NEW,这是插入的记录builds_result

然后在表上创建一个触发器builds_result来执行这个函数:

CREATE TRIGGER upd
    AFTER INSERT ON builds_result
    FOR EACH ROW
    EXECUTE PROCEDURE my_trigger_function();

就是这样。现在,每次将行插入builds_result表时都会调用该触发器函数。


推荐阅读