pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
一个列既可以是给定表的一个用户定义列,也可以是下列系统定义列之一:
一行的唯一标识符(对象 ID)。这是由 Postgres 自动为所有行添加的一个序列号。OID 不会被重用,并且是 32 位的量。
包含该行的表的 OID。对于从继承层次中选择的查询来说,这个属性特别有用,因为没有它就很难分辨一行来自哪个具体的表。tableoid 可以与 pg_class 的 OID 属性连接来获得表名。
插入该元组的事务的标识(事务 ID)。(注意:元组是一行的单个状态;对一行的每次 UPDATE 都会为同一逻辑行创建一个新元组。)
插入事务内部的命令标识符(从零开始)。
删除事务的标识(事务 ID),对于未删除的元组为零。实践中,在一个可见元组中它从不为非零。
删除事务内部的命令标识符,或为零。同样,它在一个可见元组中从不为非零。
该元组在其表中的元组 ID。这是一对(块号,块内元组索引),标识该元组的物理位置。注意,虽然 ctid 可以用来非常快速地定位元组,但一行的 ctid 在每次被更新或被 VACUUM 移动时都会改变。因此 ctid 作为长期行标识符是没有用的。应该使用 OID,或者更好的是用户定义的序列号来标识逻辑行。
关于系统属性的更多信息请参阅 Stonebraker, Hanson, Hong, 1987 。 事务和命令标识符都是 32 位的量。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。