触发PostgreSQL根据其他三个值的总和更新一个值

问题描述 投票:1回答:2

[我试图使三个整数的总和等于100时布尔值变为true,而总和不等于100则使布尔值变为false。

我正在Postgres中制作一个触发函数来做到这一点,但收到以下错误:

错误:«db_fondos.checksize»不是已知变量第6行:DB_Fondos.CheckSize = true;

希望您能帮助我。代码:

CREATE FUNCTION check_sum()
    RETURNS TRIGGER
AS $$
BEGIN
    IF DB_Fondos.SizeLarge+DB_Fondos.SizeMid+DB_Fondos.SizeSmall=100 then
    DB_Fondos.CheckSize=true;
    END IF;
    RETURN NEW;
END;
$$
LANGUAGE plpgsql;
postgresql plpgsql database-trigger
2个回答
3
投票

为什么不为此简单地使用计算列而不是触发器?数据库在后台为您管理计算,并且在查询表时,您将始终获得最新值:


1
投票

在触发器中,您使用NEW而不是表名与新插入的行相关:

© www.soinside.com 2019 - 2024. All rights reserved.