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