ホームページ >データベース >mysql チュートリアル >PostgreSQL で計算列をエミュレートするにはどうすればよいですか?
PostgreSQL 内での計算列のシミュレーション
MS SQL Server とは異なり、PostgreSQL は計算列をネイティブにサポートしません。 ただし、この機能を効果的に複製する方法がいくつかあります。
PostgreSQL 12 以降
PostgreSQL 12 では、SQL Server の計算列の動作を反映する STORED 生成列が導入されました。 これらの列はテーブル内に物理的に保存され、クエリ中に簡単にアクセスできます。
<code class="language-sql">CREATE TABLE tbl ( int1 int, int2 int, product bigint GENERATED ALWAYS AS (int1 * int2) STORED );</code>
PostgreSQL 11 以前
古い PostgreSQL バージョンの場合、仮想生成列をシミュレートするには関数と属性の表記が必要です。
関数構文:
<code class="language-sql">CREATE FUNCTION col(tbl) RETURNS type AS 'expression';</code>
使用法:
<code class="language-sql">SELECT tbl.col, ... FROM tbl;</code>
このアプローチは、仮想生成列を模倣します。ただし、SELECT *
には含まれません。
代替アプローチ
SELECT *
を使用すると、元の列と計算された列の両方が取得されます。重要な考慮事項:
SELECT *
に含まれます。IMMUTABLE
として定義する必要があります。以上がPostgreSQL で計算列をエミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。