文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3.2 系统字段
每个表都有几个系统字段,这些字段是由系统隐含定义的。因此,这些名字不能用于用户定义的字段名。请注意这些限制与这个名字是否关键字无关,把名字用引号括起来并不能让你逃离这些限制。你实际上不需要注意这些字段;只要知道它们存在就可以了。
表格 PG 的系统字段
字段名 | 简介 | 应用 |
---|---|---|
oid | 行对象标识符(对象 ID)。 | 这个字段只有在创建表的时候使用了 WITH OIDS 或者是配置参数 default_with_oids 的值为真时出现。这个字段的类型是 oid(和字段同名). |
tableoid | 包含本行的表的 OID。 | 这个字段对那些从继承层次中选取的查询特别有用,因为如果没有它的话,我们就很难说明一行来自哪个独立的表。 tableoid 可以和 pg_class 的 oid 字段连接起来获取表名字。 |
xmin | 插入该行版本的事务标识(事务 ID)。 | 一个行版本是一行的一个状态;一行的每次更新都为同一个逻辑行创建一个新的行版本。 |
xmax | 删除事务的标识(事务 ID),如果不是被删除的行版本,那么是零。 | 在一个可见行版本里,这个字段有可能是非零。这通常意味着删除事务还没有提交,或者是一个删除的企图被回滚掉了。 |
cmin | 在插入事务内部的命令标识(从零开始)。 | |
cmax | 删除事务内部的命令标识符,或者是零。 | |
ctid | 一个行版本在它所处的表内的物理位置,如(物理块号,行号)。 | 尽管 ctid 可以用于非常快速地定位行版本,但每次 VACUUM FULL 之后,一个行的 ctid 都会被更新或者移动。因此 ctid 是不能作为长期的行标识符的。应该使用 OID ,或者更好是用户定义的序列号,来标识一个逻辑行。 |
本章参考
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论