Столбец " " не существует при срабатывании триггера Postgresql
Создал триггер, чтобы записывал данные в таблицу при добавлении операции в таблицу maininf
CREATE FUNCTION trigger_s_before_lns () RETURNS trigger AS $First$
BEGIN
INSERT INTO summary_subtotal(code, today, saldo_in_som, debit_som, saldo_out_som) VALUES (
-- Берем код дебита из новосозданной операции
NEW.debit,
-- Берем дату из новосозданной строки
NEW.date_of,
-- Берем saldo_out из записи в summary_total где code = коду дебита новосозданной запоперациииси и
дата меньше чем дата операции.
(SELECT saldo_out_som FROM summary_subtotal WHERE code = NEW.debit AND today < NEW.date_of),
-- Так как запись новая, просто выставляем ей значение дебит равное сумме текущей операции
NEW.som,
-- Здесь записываем если Паша являлся Кредитором
0.00
-- Если запись существует, то обновляем debit, также credit и saldo_out
) ON CONFLICT (code, today) DO UPDATE SET
debit_som = debit_som + NEW.som,
saldo_out_som = saldo_out_som + NEW.som;
END;
$First$
LANGUAGE plpgsql;
CREATE TRIGGER main_in
BEFORE INSERT ON maininf FOR EACH ROW
EXECUTE PROCEDURE trigger_s_before_lns();
SQL для создания таблицы maininf:
CREATE TABLE public.maininf
(
contract_number character varying(50) COLLATE pg_catalog."default",
contract character varying(50) COLLATE pg_catalog."default",
debit integer,
kredit integer,
date_of date,
coments character varying(300) COLLATE pg_catalog."default",
som integer,
usd integer
)
TABLESPACE pg_default;
ALTER TABLE public.maininf
OWNER to postgres;
-- Trigger: main_in
-- DROP TRIGGER main_in ON public.maininf;
CREATE TRIGGER main_in
BEFORE INSERT
ON public.maininf
FOR EACH ROW
EXECUTE PROCEDURE public.trigger_s_before_lns();
SQL для создания таблицы summary_subtotal:
CREATE TABLE public.summary_subtotal
(
code integer,
saldo_in_som integer NOT NULL DEFAULT 0,
debit_som integer NOT NULL DEFAULT 0,
credit_som integer NOT NULL DEFAULT 0,
saldo_out_som integer NOT NULL DEFAULT 0,
saldo_in_usd integer NOT NULL DEFAULT 0,
debit_usd integer NOT NULL DEFAULT 0,
credit_usd integer NOT NULL DEFAULT 0,
saldo_out_usd integer NOT NULL DEFAULT 0,
today date
)
TABLESPACE pg_default;
ALTER TABLE public.summary_subtotal
OWNER to postgres;
Выдает вот такую вот ошибку: столбец "debit" не существует.