首頁 >資料庫 >mysql教程 >PostgreSQL 是否像 SQL Server 一樣支援計算列?

PostgreSQL 是否像 SQL Server 一樣支援計算列?

Barbara Streisand
Barbara Streisand原創
2025-01-21 17:27:09291瀏覽

Does PostgreSQL Support Computed Columns Like SQL Server?

PostgreSQL 中的計算列

問:PostgreSQL 是否支援與 MS SQL Server 中類似的計算列?

答:是的,PostgreSQL 12 及更高版本引入了 STORED 生成列,它類似於 SQL Server 中的計算列。

PostgreSQL 12 或更高版本

  • 支援 STORED 產生欄位,並遵循 SQL 標準。

  • 範例:

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

PostgreSQL 11 或更低版本

  • 不直接支援 產生欄位

  • 解決方法是使用屬性表示法的函數,這模擬了虛擬生成列:

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

替代方案

  • 視圖 可用於實作計算列,但不能透過 SELECT * 存取。
  • 觸發器 可用於實現持久化 (STORED) 計算列。
  • 物化視圖 為持久化計算列提供了更有效率的選項。

以上是PostgreSQL 是否像 SQL Server 一樣支援計算列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn