Postgres触发器和自动完成表格功能

时间:2018-11-29 14:39:48

标签: sql postgresql pgadmin-4

找不到解决方案来触发填充通过和成功率行

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);

我需要在表达式的行中填充表达式(total-pass)和成功率((pass / total)x100)

1 个答案:

答案 0 :(得分:0)

似乎只是为了自动更新一列而已,但您首先需要创建一个函数,使触发器将使用类似这样的操作来设置该列的值

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();