ホームページ > データベース > mysql チュートリアル > PostgreSQL の計算列: どのような代替案が存在しますか?

PostgreSQL の計算列: どのような代替案が存在しますか?

Susan Sarandon
リリース: 2025-01-21 17:22:09
オリジナル
324 人が閲覧しました

PostgreSQL Computed Columns: What Alternatives Exist?

PostgreSQL 計算カラム: 代替案の検討

PostgreSQL ユーザーは、MS SQL Server などの他のデータベース管理システムによくある機能である計算列の可用性についてよく質問します。 PostgreSQL はまだ計算列をネイティブにサポートしていませんが、同様の機能を実現するためのさまざまな代替手段を提供しています。

生成された列の保存: PostgreSQL 12 以降

PostgreSQL 12 では、生成された列を保存するという概念が導入されています。これは SQL 標準に準拠し、DB2、MySQL、Oracle などの他の RDBMS でサポートされています。これらの列は STORED キーワードを使用して作成され、データの取得または挿入時に計算されます。

CREATE TABLE tbl (
  int1    int
, int2    int
, product bigint GENERATED ALWAYS AS (int1 * int2) STORED
);
ログイン後にコピー

仮想生成列: PostgreSQL 11 以前

PostgreSQL 11 以前では、真の仮想生成列はサポートされていません。ただし、ユーザーは属性表記のある関数を使用してその動作をシミュレートできます。この方法には、仮想的に生成された列の外観と機能を模倣する tbl.col 構文の使用が含まれます。

CREATE FUNCTION col(tbl) ... AS ...  -- 您的计算表达式在此处
ログイン後にコピー
SELECT tbl.*, col(tbl) FROM tbl;
ログイン後にコピー

代替案

上記の方法に加えて、PostgreSQL ユーザーは同様の機能を実現する他の方法も検討できます。

  • ビュー: ビューを使用して仮想的に生成された列を作成し、ユーザーが SELECT * クエリで列を選択できるようにします。
  • 式インデックス: これらのインデックスは、派生値を計算する関数で作成でき、これらの値を含むクエリのパフォーマンスが向上します。
  • マテリアライズド ビュー: マテリアライズド ビューはクエリの結果を保存し、特定の時点でのデータのスナップショットを提供します。
  • トリガー: トリガーを使用して、テーブルに派生した値を更新または挿入できます。

PostgreSQL は現在ネイティブの計算列をサポートしていない可能性がありますが、その柔軟で強力な機能セットは、ユーザーのさまざまなニーズを満たすために同様の機能を実装するためのさまざまなソリューションを提供します。

以上がPostgreSQL の計算列: どのような代替案が存在しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート