PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL:criando uma coluna gerada


Conforme observado acima nos comentários - as colunas geradas estarão disponíveis no Postgres 12.

É possível falsificar uma coluna gerada com uma função nas versões <12:

https://www.db-fiddle.com/f/21FtTGSuTXzZxoQX9CRUZf/0
CREATE TABLE orders (
    receiptPrice INT,
    platformFee INT,
    delivererFee INT
);

CREATE OR REPLACE FUNCTION paymentPrice(_order orders) 
RETURNS integer AS $$
  SELECT ( _order.receiptPrice + _order.platformFee + _order.delivererFee)
$$
STABLE
LANGUAGE SQL;
SELECT paymentPrice(orders) FROM orders;

Eu acho que um caso de uso para isso seria, se alguma outra ferramenta dependesse disso (casos de uso para mim onde ferramentas como https://github.com/graphile/postgraphile ) ou se as consultas devem ser menos detalhadas.