SELECT INTO id_line id_line_table FROM table WHERE id_line_table = NEW.id_line; SELECT INTO single_price single_price_previ FROM table WHERE id_line_table = NEW.id_line; SELECT INTO total_cost total_cost_previ FROM table WHERE id_line_table = NEW.id_line; SELECT INTO quantity quantity_previ FROM table WHERE id_line_table = NEW.id_line; SELECT INTO amort amortis FROM table WHERE id_line_table = NEW.id_line; SELECT INTO month month_previ FROM table WHERE id_line_table = NEW.id_line; SELECT INTO impact impact_previ FROM table WHERE id_line_table = NEW.id_line;
IF(quantity IS NULL OR single_price IS NULL) THEN impact:= 0; ELSE IF(quantity >= 12) THEN impact:= (total_cost / amort); ELSE IF(quantity < 12 AND single_price <= 500) THEN impact:= total_cost; ELSE IF(quantity < 12 AND single_price > 500) THEN impact:= ((12 - month)*(total_cost/(amort*12))); END IF; END IF; END IF; END IF;
IF (TG_OP =''INSERT'' OR TG_OP=''UPDATE'') THEN UPDATE table SET impact_previ = impact WHERE id_line_table = NEW.id_line; END IF;
RETURN NEW;
END;
' LANGUAGE 'plpgsql';
CREATE TRIGGER add_impact_previ BEFORE INSERT OR UPDATE ON public.budget FOR EACH ROW EXECUTE PROCEDURE calcul_impact();
I always get the error :
Error SQL : ERROR: record "new" has no field named "id_ligne"