Maison >base de données >tutoriel mysql >Colonnes calculées PostgreSQL : quelles alternatives existent ?

Colonnes calculées PostgreSQL : quelles alternatives existent ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-21 17:22:09323parcourir

PostgreSQL Computed Columns: What Alternatives Exist?

Colonnes calculées PostgreSQL : explorer les alternatives

Les utilisateurs de PostgreSQL posent souvent des questions sur la disponibilité des colonnes calculées, une fonctionnalité courante dans d'autres systèmes de gestion de bases de données tels que MS SQL Server. Bien que PostgreSQL ne prenne pas encore en charge nativement les colonnes calculées, il propose diverses alternatives pour obtenir des fonctionnalités similaires.

Stockage des colonnes générées : PostgreSQL 12 et versions ultérieures

PostgreSQL 12 introduit le concept de stockage des colonnes générées, qui est conforme aux normes SQL et pris en charge par d'autres SGBDR tels que DB2, MySQL et Oracle. Ces colonnes sont créées à l'aide du mot-clé STORED et sont calculées lorsque les données sont récupérées ou insérées.

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

Colonnes générées virtuellement : PostgreSQL 11 et versions antérieures

Pour PostgreSQL 11 et versions antérieures, les véritables colonnes virtuelles générées ne sont pas prises en charge. Cependant, l'utilisateur peut simuler son comportement à l'aide de fonctions avec notation attributaire. Cette méthode implique l'utilisation de la syntaxe tbl.col, qui imite l'apparence et les fonctionnalités d'une colonne générée virtuellement.

<code class="language-sql">CREATE FUNCTION col(tbl) ... AS ...  -- 您的计算表达式在此处</code>
<code class="language-sql">SELECT tbl.*, col(tbl) FROM tbl;</code>

Alternatives

En plus des méthodes ci-dessus, les utilisateurs de PostgreSQL peuvent également envisager d'autres méthodes pour réaliser des fonctions similaires :

  • Vues : Les vues peuvent être utilisées pour créer des colonnes générées virtuellement, permettant aux utilisateurs de les sélectionner dans les requêtes SELECT *.
  • Index d'expression : Ces index peuvent être créés sur des fonctions qui calculent des valeurs dérivées, offrant ainsi des avantages en termes de performances pour les requêtes impliquant ces valeurs.
  • Vue matérialisée : La vue matérialisée stocke les résultats d'une requête, fournissant un instantané des données à un moment précis.
  • Déclencheurs : Les déclencheurs peuvent être utilisés pour mettre à jour ou insérer des valeurs dérivées dans un tableau.

Bien que PostgreSQL ne prenne pas actuellement en charge les colonnes calculées natives, son ensemble de fonctionnalités flexibles et puissantes fournit diverses solutions pour implémenter des fonctionnalités similaires afin de répondre aux différents besoins de ses utilisateurs.

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!

Déclaration:
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