PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:creazione di una colonna generata

Come notato sopra nei commenti, le colonne generate saranno disponibili in Postgres 12.

È possibile falsificare una colonna generata con una funzione nelle versioni <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;

Immagino che un caso d'uso per questo sarebbe, se qualche altro strumento dipende da esso (casi d'uso per me in cui strumenti come https://github.com/graphile/postgraphile ) o se le query devono essere meno dettagliate.