2017-01-16 5 views
0

У меня есть тестовая таблица с тремя столбцами (файл, qty, qty_total). Я буду вводить несколько строк, например, insert into test_table (file,qty) VALUS (A,5);. То, что я хочу, это для commit, так как триггер принимает значение из qty и добавляет его в qty_total. Как только это произойдет, это значение будет обновляться по мере демонстрации этого примера. Update test_table set qty = 10 where file = A; Итак, qty_total теперь 15. СпасибоPSQL Добавить значение из строки в другое значение в той же строке с помощью триггеров

ответ

0

Удалось решить это самостоятельно. Я создал функцию триггера `CREATE FUNCTION public.qty_total() ВОЗВРАТ вызвать ЯЗЫК 'plpgsql' COST 100,0 VOLATILE НЕ непротекаемый AS $ BODY $

BEGIN 
IF TG_OP = 'UPDATE' THEN 
NEW."total" := (OLD.total + NEW.col2); 
RETURN NEW; 
ELSE 
NEW."total" := NEW.col2; 
RETURN NEW; 
END IF; 

END;

$ BODY $;

ALTER FUNCTION public.qty_total() OWNER TO postgres; Это вызвано триггером CREATE TRIGGER qty_trigger BEFORE INSERT OR UPDATE ON public.test FOR EACH ROW EXECUTE PROCEDURE qty_total(); теперь, когда я вставляю новый код и значение, значение копируется в итоговое значение, когда оно обновляется, значение добавляется к сумме, и у меня есть мой новый qty_total. Это может не иметь лучшей ошибки в нем, но поскольку я передаю данные с php, я рад убедиться, что ошибки пойманы и удалены.

 Смежные вопросы

  • Нет связанных вопросов^_^