触发Postgre SQL会基于其他三个值的总和来更新一个值

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

我试图使三个整数的总和等于100时布尔值变为true,而总和不等于100则使布尔值变为false。我在postgre中创建了一个触发器函数来做到这一点,但是得到了以下错误:错误:«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
1个回答
1
投票

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


0
投票

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

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