PostgreSQL 计算列:回顾
PostgreSQL 作为一款强大的关系型数据库管理系统,提供了广泛的数据操作和管理功能。然而,计算列(也称为计算列、虚拟列、派生列或生成列)在其功能中一直缺失。本文深入探讨 PostgreSQL 中对计算列的支持,考察其在不同版本中的演变。
PostgreSQL 11 及更早版本
在 PostgreSQL 11 之前,数据库并不直接支持计算列。但是,用户可以使用带属性表示法 (tbl.col) 的函数来模拟虚拟计算列。此技术提供了一种类似于虚拟生成列的变通方法。然而,它的使用需要在 SELECT 查询中显式列出表达式。
PostgreSQL 12 及更高版本
随着 PostgreSQL 12 的出现,数据库引入了 STORED 生成列,这与 SQL 标准一致,并符合 DB2、MySQL 和 Oracle 等 DBMS 中的实现。这些计算列存储在表的数据中,并根据指定的表达式自动更新。
考虑以下示例:
<code class="language-sql">CREATE TABLE tbl ( int1 int , int2 int , product bigint GENERATED ALWAYS AS (int1 * int2) STORED );</code>
在此示例中,“product” 列是一个 STORED 生成列,它计算 int1 和 int2 的乘积。
替代方案
在不直接支持生成列的 PostgreSQL 版本中,可以使用其他方法:
结论
PostgreSQL 对计算列的支持在其各个版本中都有显着的改进。虽然在 PostgreSQL 11 之前没有明确包含计算列,但数据库提供了使用函数和属性表示法的变通方法。 PostgreSQL 12 引入了 STORED 生成列,从而在数据库本身中支持计算列。这些改进为用户提供了数据操作方面的额外灵活性和性能优化。
以上是PostgreSQL 对计算列的支持是如何演变的?的详细内容。更多信息请关注PHP中文网其他相关文章!