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 :
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!