ERROR: falta DE cláusula de entrada para la tabla "Usuarios"

0

Pregunta

Estoy usando postgresql y pgadmin y soy nuevo en esto. Tengo una tabla "Usuarios" que tiene las siguientes columnas (Username, Name, Email, Phone, Discount, Password, token, serial, created_on, updated_on, points, reference). Yo estaba tratando de crear un trigger de la tabla, de modo que cada vez que un nuevo inserción se produce con un nombre de usuario existente en el campo de referencia, los puntos de nombre de usuario será incrementado en el 50. Así que hay dos operaciones de actualización de la tabla existente, la inserción de los nuevos valores.

Yo intenté crear un trigger función como esta:

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;

y un disparador como este:

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

Pero cuando trato de insertar un nuevo valor en los "Usuarios" de la tabla, me sale el siguiente error:

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
plpgsql postgresql triggers
2021-11-23 21:47:46
1

Mejor respuesta

0

Nuevo es el conjunto de variables de tipo que está relacionada con la tabla se unió con el gatillo.

El código new."Users"."reference" no tiene ningún sentido. Usted debe escribir sólo new."reference".

2021-11-24 16:27:42

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................