Heim > Datenbank > MySQL-Tutorial > Wie kann ich berechnete Spalten in PostgreSQL emulieren?

Wie kann ich berechnete Spalten in PostgreSQL emulieren?

Linda Hamilton
Freigeben: 2025-01-21 17:12:17
Original
487 Leute haben es durchsucht

How Can I Emulate Computed Columns in PostgreSQL?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Verwendung:

<code class="language-sql">SELECT tbl.col, ... FROM tbl;</code>
Nach dem Login kopieren

Dieser Ansatz ahmt eine virtuell generierte Spalte nach; Es ist jedoch nicht in SELECT * enthalten.

Alternative Ansätze

  • Ansichten: Erstellen Sie eine Ansicht, die die berechnete Spalte enthält. Mit SELECT * werden sowohl die ursprünglichen als auch die berechneten Spalten abgerufen.
  • Trigger: Implementieren Sie persistente berechnete Spalten, indem Sie Trigger erstellen, um die berechnete Spalte automatisch zu aktualisieren, wenn sich ihre Quellspalten ändern.
  • Materialisierte Ansichten: Bei häufig abgefragten berechneten Spalten führen materialisierte Ansichten eine Vorberechnung und Speicherung der Ergebnisse durch und optimieren so die Leistung.

Wichtige Überlegungen:

  • GESPEICHERT generierte Spalten (PostgreSQL 12) sind in SELECT * enthalten.
  • Funktionen, die virtuell generierte Spalten emulieren, müssen als IMMUTABLE definiert werden, um Ausdrucksindizes zu ermöglichen.
  • Materialisierte Ansichten sind ideal für persistente berechnete Spalten, die häufigen Zugriff erfordern.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage