↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3
历史版本。 PostgreSQL 7.3 已结束支持。 请参阅 当前版本手册.

2.2. 系统列 #

每个表都有几个由系统隐式定义的系统列。因此,这些名称不能用作用户定义列的名称。(注意,这些限制与名称是否为关键字无关;给名称加引号也不能绕过这些限制。)你其实不必关心这些列的细节,只需要知道它们存在即可。

oid

行的对象标识符(object ID)。这是一个由 PostgreSQL 自动添加到所有表行的序列号(除非表是用 WITHOUT OIDS 创建的,此时这个列不存在)。这个列的类型是 oid(与列同名);该类型的更多信息见第 5.10 节。

tableoid

包含该行的表的 OID。这个属性对于从继承层次中选择的查询特别有用,因为如果没有它,很难判断一行来自哪个具体的表。可以把 tableoid 与 pg_class 的 oid 列连接来获得表名。

xmin

插入该元组的事务的标识(事务 ID)。(注意:在这里的语境中,元组是行的一个具体状态;行的每次更新都会为同一个逻辑行创建一个新元组。)

cmin

插入事务内的命令标识符(从零开始)。

xmax

删除事务的标识(事务 ID),对未删除的元组为零。在可见的元组中这个字段也可能非零:这通常表示删除事务尚未提交,或者一次删除尝试已被回滚。

cmax

删除事务内的命令标识符,或为零。

ctid

元组在其表内的物理位置。注意虽然 ctid 可以用来很快地定位元组,但一行的 ctid 在每次被更新或被 VACUUM FULL 移动时都会改变。因此 ctid 作为长期行标识符是没有用的。应该用 OID,或者更好的是用户自定义的序列号来标识逻辑行。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.