PostgreSQL 表中的隐藏字段意味着什么

分类:编程技术 时间:2024-02-20 15:38 浏览:0 评论:0
0
PostgreSQL表中的隐藏字段有哪些?相信很多没有经验的人对于解决这个问题都束手无策。本文总结了问题的原因和解决方案。通过这篇文章,希望你能解决这个问题。

1. PostgreSQL表中存在的隐藏字段

oid:行的对象标识符(对象ID)。

注意:只有建表时使用WITH OIDS,或者设置了配置参数default_with_oids时,才会出现该字段。该字段的类型是oid(与字段同名)。 OID是一个32位的数量,它被分配给同一簇内的公共计数器。对于大型或长期存在的数据库,此计数器可能会重叠。因此,认为OID是唯一的是一个非常错误的想法。

tableoid:包含该行的表的OID。该字段对于从继承层次结构中选择的查询特别有用,因为没有它很难判断一行来自哪个单独的表。 tableoid可以与pg_class的oid字段连接来获取表名。
xmin:插入行版本的事务的标识符(事务ID)。
cmin:插入事务中的命令标识符(从零开始)。
xmax:已删除事务的标识符(事务ID),如果不是已删除行版本则为零。
cmax:删除事务内的命令标识符,或零。
ctid:行版本在其所在表中的物理位置

请注意,虽然 ctid 可以用于非常快速地定位行版本,但每个VACUUM FULL 后,行的 ctid 将被更新或移动。因此ctid不能用作长期行标识符。 

数据表的字段信息保存在pg_attributed表中,data表保存在pg_class中,所以可以结合这两个来查找对应表的所有字段

案例:
testdb=# create table table_oid(id int, name varchar(64 )) with(oids=true);使用oid创建表

执行搜索操作
testdb=# select oid, tableoid, tableoid::regclass as tablename, cmax, cmin, xmin, xmax, ctid, * from table_oid;< br/>

看完上面的内容,你明白PostgreSQL表中的隐藏字段是什么了吗?如果您想学习更多技能或者想了解更多相关内容,请关注行业资讯频道。感谢您的阅读!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > PostgreSQL 表中的隐藏字段意味着什么

用户评论