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 <rogmart...@gmail.com>
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
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a