Basicamente você deverá cria uma function e uma trigger e toda vez que
houver o evento insert e ou update executar'aa função que calculará o
resultado no campo.
No exemplo abaixo a coluna3 é calculada a partir de uma somatoria dos
valores da coluna1 e coluna2, porém vc ajusta a realidade de seu cauculo
funcão:
CREATE OR REPLACE FUNCTION "public"."calcular" () RETURNS trigger AS'
begin
if (new.coluna1 is null) or (new.coluna2 is null) then
Raise notice ''Factores para o calculo nulos'';
new.coluna3 := 0;
else
new.coluna3 := (new.coluna1 + new.coluna2);
end if;
return new;
end;
'LANGUAGE 'plpgsql' IMMUTABLE CALLED ON NULL INPUT SECURITY INVOKER;
trigger:
CREATE TRIGGER "fazcalculo" BEFORE INSERT OR UPDATE
ON "public"."nomeTabela" FOR EACH ROW
EXECUTE PROCEDURE "public"."calcular"();
Atenciosamente,
*Mário R. de Castro*
Em 18 de abril de 2018 08:29, Rogério Martins <[email protected]>
escreveu:
> Bom dia pessoal !
>
> É possível criar no PG 9.6 um campo calculado ?
> Exemplo:
>
> select
> t.data_nascimento,
> t.campo_calculado_idade,
> from tabela t
>
> onde:
> t.campo_calculado_idade = date_part('year', age(t.data_nascimento) )
>
> Não quero usar view, preciso desse campo na tabela.
>
> Obrigado
>
>
> --
> The Ubuntu Counter Project - user number # 33192
> <http://ubuntucounter.geekosophical.net>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral