Dear all, I have issue with the red portion function below;
This IF last_id IS NULL THEN suppose to test if last_id is NULL, that is the select query did not found it then execute the rest of the red sql but it always fail to insert the NEW.amount into amount , every other things fine. Kindly help out. CREATE OR REPLACE FUNCTION invoice_trigger_func() RETURNS trigger AS $$ DECLARE last_id integer; current_balance_id integer; oldbalance numeric(10,2); newbalance numeric(10,2); BEGIN SELECT lastbal_id INTO last_id FROM patient WHERE patient_id = NEW.patient_id; IF last_id IS NULL THEN INSERT INTO balance (invoice_id, patient_id, amount) VALUES (NEW.invoice_id, NEW.patient_id, NEW.amount); UPDATE patient SET lastbal_id = (SELECT currval('balance_balance_id_seq')) WHERE patient_id = NEW.patient_id; ELSE SELECT amount INTO oldbalance FROM balance WHERE balance_id = last_id; INSERT INTO balance (invoice_id, patient_id, amount) VALUES (NEW.invoice_id, NEW.patient_id, oldbalance + NEW.amount); UPDATE patient SET lastbal_id = (SELECT currval('balance_balance_id_seq')) WHERE patient_id = NEW.patient_id; END IF; RETURN NEW; END; $$ LANGUAGE plpgsql; Thanks, Sunday Olutayo