自动完成的 Postgres 触发器和函数 table

Postgres Trigger and Function to auto complete table

无法找到解决方案来触发填充通行证和 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);

我需要用表达式 (total - pass) 和 success_rate 填充 pass 行 ((pass/total) x100)

自动更新列似乎有点冗长,但首先您需要创建一个函数,触发器将运行使用类似这样的函数来设置该列的值

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;

然后为 table

创建触发器
CREATE TRIGGER ON en_testes_automatizados
BEFORE INSERT FOR EACH ROW
EXECUTE PROCEDURE en_testes_automatizados_success_rate();