错误:缺少表“用户”的 FROM- 子句条目

Posted

技术标签:

【中文标题】错误:缺少表“用户”的 FROM- 子句条目【英文标题】:ERROR: missing FROM- clause entry for table "Users" 【发布时间】:2021-11-23 21:47:46 【问题描述】:

我正在使用 postgresql 和 pgadmin,我是新手。我有一个表“用户”,其中包含以下列(Username, Name, Email, Phone, Discount, Password, token, serial, created_on, updated_on, points, reference)。 我试图为表创建一个触发器,以便每次在引用字段中使用现有用户名发生新插入时,使用的用户名的点数将增加 50。所以有两个操作 - 更新现有表,插入新的价值观。

我尝试创建一个这样的触发器函数:

create or replace function points()
returns trigger as 
$BODY$
BEGIN
        if 
        new."Users"."reference" in (old."Users"."username")
        then
        Insert into "Users"(Username,Name,Email,Phone,Discount,Password,token,serial,created_on,updated_on,points,reference)
         values(new.Username,new.Name,new.Email,new.Phone,new.Discount,new.Password,new.token,new.serial,new.created_on,new.updated_on,new.points,new.reference);
        
        
         update "Users"
         set old."Users"."points" = old."Users"."points" + 50
         where "Users"."username" = (select "Users"."username" from "Users" where new."Users"."reference" in (old."Users"."username"));
                                     
                                     
         end if;
    RETURN new;
END;
$BODY$
language plpgsql;

还有这样的触发器:

create trigger referece_points
after insert 
on "Users"
for each row
execute procedure points();

但是当我尝试在“用户”表中插入新值时,我收到以下错误:

ERROR: missing FROM-clause entry for table "Users" LINE 1: SELECT new."Users"."reference" in (old."Users"."username") ^ Query: SELECT new."Users"."reference" in (old."Users"."username") CONTEXT: PL/pgSQL function points() line 2 at IF

【问题讨论】:

【参考方案1】:

New 是与触发器连接的表相关的类型的复合变量。

代码new."Users"."reference" 没有任何意义。你应该只写new."reference"

【讨论】:

以上是关于错误:缺少表“用户”的 FROM- 子句条目的主要内容,如果未能解决你的问题,请参考以下文章

缺少表“Grupo” cakephp 的 FROM 子句条目

查询中的错误 - 缺少表的 FROM 子句条目 - SQL

Rails PG::UndefinedTable: 错误: 缺少表的 FROM 子句条目

如何修复“缺少表的 FROM 子句条目”?

TypeORM:[364] 错误:在字符 401 处缺少表“userorganisation”的 FROM 子句条目

PG::UndefinedTable: 错误:缺少表“user_events”的 FROM 子句条目