PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL:Erstellen einer generierten Spalte

Wie oben in den Kommentaren erwähnt, werden generierte Spalten in Postgres 12 verfügbar sein.

In den Versionen <12:

ist es möglich, eine generierte Spalte mit einer Funktion zu fälschen

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;

Ich denke, ein Anwendungsfall dafür wäre, wenn andere Tools davon abhängen (Anwendungsfälle für mich, in denen Tools wie https://github.com/graphile/postgraphile ) oder wenn die Abfragen weniger ausführlich sein sollen.