EROARE: DIN lipsă - clauza de intrare pentru tabelul "Utilizatori"

0

Problema

Eu sunt, folosind postgresql și pgadmin și eu sunt nou la acest lucru. Am un tabel "Utilizatori" care are următoarele coloane (Username, Name, Email, Phone, Discount, Password, token, serial, created_on, updated_on, points, reference). Am fost încercarea de a crea un trigger pentru masă, astfel încât de fiecare dată când un nou introduce apare cu numele de utilizator existente în domeniul de referință, punctele de utilizat de utilizator va fi incrementat cu 50. Deci, există două operațiuni - actualizarea masă existente, introducerea de noi valori.

Am încercat crearea unui declanșator funcție de genul asta:

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;

și un declanșator de genul asta:

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

Dar când m-am încercați să introduceți un nou valori în "Utilizatori" de masă, primesc următoarea eroare:

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

Cel mai bun răspuns

0

Nou este compozite variabilă de tip, care este legat la masă s-au alăturat cu trăgaci.

Codul new."Users"."reference" nu are nici un sens. Ar trebui să scrie doar new."reference".

2021-11-24 16:27:42

În alte limbi

Această pagină este în alte limbi

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