在 PostgreSQL 中模擬計算欄位
與 MS SQL Server 不同,PostgreSQL 本身不支援計算列。 然而,有幾種方法可以有效地複製此功能。
PostgreSQL 12 及更高版本
PostgreSQL 12 引入了 STORED 產生列,反映了 SQL Server 計算列的行為。 這些列實體儲存在表中,可以在查詢期間輕鬆存取。
<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中文網其他相關文章!