Simulieren berechneter Spalten in PostgreSQL
Im Gegensatz zu MS SQL Server unterstützt PostgreSQL berechnete Spalten nicht nativ. Allerdings replizieren mehrere Methoden diese Funktionalität effektiv.
PostgreSQL 12 und höher
PostgreSQL 12 führte STORED-generierte Spalten ein, die das Verhalten der berechneten Spalten von SQL Server widerspiegeln. Diese Spalten werden physisch in der Tabelle gespeichert und sind bei Abfragen leicht zugänglich.
<code class="language-sql">CREATE TABLE tbl ( int1 int, int2 int, product bigint GENERATED ALWAYS AS (int1 * int2) STORED );</code>
PostgreSQL 11 und früher
Für ältere PostgreSQL-Versionen erfordert die Simulation virtuell generierter Spalten Funktionen und Attributnotation.
Funktionssyntax:
<code class="language-sql">CREATE FUNCTION col(tbl) RETURNS type AS 'expression';</code>
Verwendung:
<code class="language-sql">SELECT tbl.col, ... FROM tbl;</code>
Dieser Ansatz ahmt eine virtuell generierte Spalte nach; Es ist jedoch nicht in SELECT *
enthalten.
Alternative Ansätze
SELECT *
werden sowohl die ursprünglichen als auch die berechneten Spalten abgerufen.Wichtige Überlegungen:
SELECT *
enthalten.IMMUTABLE
definiert werden, um Ausdrucksindizes zu ermöglichen.Das obige ist der detaillierte Inhalt vonWie kann ich berechnete Spalten in PostgreSQL emulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!