sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL:creando una columna generada

Como se indicó anteriormente en los comentarios, las columnas generadas estarán disponibles en Postgres 12.

Es posible falsificar una columna generada con una función en las versiones <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;

Supongo que un caso de uso para esto sería, si alguna otra herramienta depende de ella (casos de uso para mí donde herramientas como https://github.com/graphile/postgraphile ) o si las consultas deberían ser menos detalladas.