↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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 已于 2007 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

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,或者更好的是用户自定义的 序列号来标识逻辑行。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。