Maison >base de données >tutoriel mysql >PostgreSQL prend-il en charge les colonnes calculées comme SQL Server ?

PostgreSQL prend-il en charge les colonnes calculées comme SQL Server ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-21 17:27:09291parcourir

Does PostgreSQL Support Computed Columns Like SQL Server?

Colonnes calculées dans PostgreSQL

Q : PostgreSQL prend-il en charge les colonnes calculées similaires à celles de MS SQL Server ?

R : Oui, PostgreSQL 12 et versions ultérieures introduisent les colonnes générées STORED, qui sont similaires aux colonnes calculées dans SQL Server.

PostgreSQL 12 ou supérieur

  • Prend en charge les colonnes générées STOCKÉES et suit les normes SQL.

  • Exemple :

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

PostgreSQL 11 ou version antérieure

  • ne prend pas directement en charge les colonnes générées.

  • La solution de contournement consiste à utiliser une fonction avec notation d'attribut, qui simule une colonne générée virtuelle :

    <code class="language-sql">  CREATE FUNCTION col(tbl) ... AS ...  -- 计算表达式
      CREATE INDEX ON tbl(col(tbl));</code>

Alternatives

  • View peut être utilisé pour implémenter des colonnes calculées, mais n'est pas accessible via SELECT *.
  • Trigger peut être utilisé pour implémenter des colonnes calculées persistantes (STORED).
  • Les
  • Vues matérialisées offrent des options plus efficaces pour conserver les colonnes calculées.

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