首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在before update触发器上不存在PostgreSQL 10错误关系new

在before update触发器上不存在PostgreSQL 10错误关系new
EN

Stack Overflow用户
提问于 2020-06-06 02:29:14
回答 1查看 141关注 0票数 0

我的before update触发器在更新表company中的单行时抛出错误。

代码语言:javascript
复制
ERROR:  relation "new" does not exist, row 7.

触发器和触发器函数代码:

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION public.check_company_transitivity()
    RETURNS trigger
    AS $$
DECLARE
    cmp uuid;
    head_company uuid;
    audited_company uuid;
BEGIN
    audited_company := (select NEW.id from NEW);
    cmp:=audited_company;
    head_company:='*';
    while head_company is not null loop
        head_company:=(select head_company from company where id=cmp);
        if audited_company=head_company then
            raise exception 'transitive closure';
        else
            cmp=head_company;
        end if;
    end loop;
return new;
END;
$$  LANGUAGE plpgsql;


create trigger check_company_transitivity 
before update
on
public.company for each row execute procedure check_company_transitivity();

我不明白问题出在哪里,如果能帮上忙,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-06 02:50:44

您可以直接使用NEW中的值

代码语言:javascript
复制
audited_company := NEW.id;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62221985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档