sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:skapa en genererad kolumn

Som noterats ovan i kommentarerna - genererade kolumner kommer att finnas tillgängliga i Postgres 12.

Det är möjligt att fejka en genererad kolumn med en funktion i versioner <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;

Jag antar att ett användningsfall för detta skulle vara, om något annat verktyg beror på det (användningsfall för mig där verktyg som https://github.com/graphile/postgraphile ) eller om frågorna ska vara mindre utförliga.




  1. Finns det en lösning för att definiera en unik restriktion som behandlar NULL-värden som icke-särskilda?

  2. MySQL MOD() är trasig:Är detta det bästa alternativet?

  3. Sortera lista över tuplar med hänsyn till plats (svensk ordning)

  4. Oracle- Vänster yttre koppling på flera tabeller returnerar inte önskade nollvärden