मैं का उपयोग कर रहा हूँ postgresql और pgadmin और मैं इस के लिए नया हूँ. मैं एक टेबल पर "उपयोगकर्ता" है कि निम्न कॉलम (Username, Name, Email, Phone, Discount, Password, token, serial, created_on, updated_on, points, reference)
.
मैं कोशिश कर रहा था बनाने के लिए एक ट्रिगर के लिए मेज इतना है कि हर एक नया सम्मिलित होता है के साथ एक मौजूदा उपयोगकर्ता नाम के संदर्भ में, क्षेत्र के अंक का इस्तेमाल किया यूज़रनेम incremented होगा 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