Postgres Trigger и функция для автоматического заполнения таблицы - PullRequest
0 голосов
/ 29 ноября 2018

Не удается найти решение для создания триггера для заполнения строк pass и success_rate

CREATE TABLE en_testes_automatizados (
dia DATE NOT NULL,
id_projeto integer NOT NULL REFERENCES jira3.en_projeto (id_projeto),
total integer NOT NULL,
pass integer,
fail integer,
success_rate DOUBLE PRECISION,
result_link character);

Мне нужно заполнить строку pass выражением (total - pass) и success_rate с ((балл / всего) х100)

1 Ответ

0 голосов
/ 29 ноября 2018

Кажется, немного затянуто просто для автоматического обновления столбца, но сначала вам нужно будет создать функцию, которая будет запускаться триггером, используя что-то вроде этого, которое установит значение этого столбца

CREATE OR REPLACE FUNCTION en_testes_automatizados_success_rate()
RETURNS TRIGGER AS 
$$
BEGIN
    NEW.success_rate := (pass / (pass + fail)) * 100;

    RETURN NEW;
END
$$
LANGUAGE PLPGSQL;

Затем создайте триггер для таблицы

CREATE TRIGGER ON en_testes_automatizados
BEFORE INSERT FOR EACH ROW
EXECUTE PROCEDURE en_testes_automatizados_success_rate();
...