Maison > base de données > tutoriel mysql > Comment puis-je émuler des colonnes calculées dans PostgreSQL ?

Comment puis-je émuler des colonnes calculées dans PostgreSQL ?

Linda Hamilton
Libérer: 2025-01-21 17:12:17
original
487 Les gens l'ont consulté

How Can I Emulate Computed Columns in PostgreSQL?

Simulation de colonnes calculées dans PostgreSQL

Contrairement à MS SQL Server, PostgreSQL ne prend pas en charge nativement les colonnes calculées. Cependant, plusieurs méthodes reproduisent efficacement cette fonctionnalité.

PostgreSQL 12 et versions ultérieures

PostgreSQL 12 a introduit les colonnes générées STORED, reflétant le comportement des colonnes calculées de SQL Server. Ces colonnes sont physiquement stockées dans la table, facilement accessibles lors des requêtes.

<code class="language-sql">CREATE TABLE tbl (
  int1    int,
  int2    int,
  product bigint GENERATED ALWAYS AS (int1 * int2) STORED
);</code>
Copier après la connexion

PostgreSQL 11 et versions antérieures

Pour les anciennes versions de PostgreSQL, la simulation de colonnes virtuelles générées nécessite des fonctions et une notation d'attribut.

Syntaxe de la fonction :

<code class="language-sql">CREATE FUNCTION col(tbl) RETURNS type AS 'expression';</code>
Copier après la connexion

Utilisation :

<code class="language-sql">SELECT tbl.col, ... FROM tbl;</code>
Copier après la connexion

Cette approche imite une colonne générée virtuellement ; cependant, il n'est pas inclus dans SELECT *.

Approches alternatives

  • Vues : Construisez une vue incorporant la colonne calculée. L'utilisation de SELECT * récupère les colonnes originales et calculées.
  • Déclencheurs : Implémentez des colonnes calculées persistantes en créant des déclencheurs pour mettre à jour automatiquement la colonne calculée chaque fois que ses colonnes source changent.
  • Vues matérialisées : Pour les colonnes calculées fréquemment interrogées, les vues matérialisées précalculent et stockent les résultats, optimisant ainsi les performances.

Considérations importantes :

  • Les colonnes générées STOCKÉES (PostgreSQL 12) sont incluses dans SELECT *.
  • Les fonctions émulant des colonnes générées virtuelles doivent être définies comme IMMUTABLE pour activer les index d'expression.
  • Les vues matérialisées sont idéales pour les colonnes calculées persistantes nécessitant un accès fréquent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal