Greenplum表里的8个隐含字段
程序员文章站
2022-06-23 11:22:22
oid: 行的对象标识符(对象ID)。注意:这个字段只有在创建表的时候使用了WITH OIDS,或者是设置了配置参数default_with_oids时出现,这个字段的类型是oid(和字段同名)。OID是32位的量,是在同一个集群内通用的计数器上赋值的。对于一个大型或者长时间使用的数据库,这个计数器是有可能重叠的。因此,OID是唯一的是非常错误的想法.tableoid: 包含本行的表的OID。这个字段对那些从继承层次中选取的查询特别有用,因为如果没有它的话,我们就很难说明一行来自哪个独立....
一、8个隐含字段
- oid: 行的对象标识符(对象ID)。
注意:这个字段只有在创建表的时候使用了WITH OIDS,或者是设置了配置参数default_with_oids时出现,
这个字段的类型是oid(和字段同名)。OID是32位的量,是在同一个集群内通用的计数器上赋值的。对于一个大型或者长时间使用的数据库,
这个计数器是有可能重叠的。因此,OID是唯一的是非常错误的想法.
如下建表SQL在greenplum中不能通过:
create table "public"."t_spec_name"(
"id" int PRIMARY KEY,
"oid" int
)WITH OIDS;
而下面的可通过:
create table "public"."t_spec_name"(
"id" int PRIMARY KEY,
"oid" int
);
-
tableoid: 包含本行的表的OID。这个字段对那些从继承层次中选取的查询特别有用,因为如果没有它的话,我们就很难说明一行来自哪个独立的表。tableoid可以和pg_class的oid字段连接起来获取表名字。
-
xmin: 插入该行版本的事务的标识(事务ID)。
-
cmin: 在插入事务内部的命令标识(从零开始)。
-
xmax: 删除事务的标识(事务ID),如果不是被删除的行版本,那么是零。
-
cmax: 在删除事务内部的命令标识符,或者是零。
-
ctid: 一个行版本在它所处的表内的物理位置
注意,尽管ctid可以用于非常快速地定位行版本,但每次VACUUM FULL之后,一个行的ctid都会被更新或者移动。
因此ctid是不能作为长期的行标识符的。
- gp_segment_id: 指定行对象存储所在的segment的id编号
二、示例:
首先,创建一个含有2个字段的表:
create table "t_aaa"(
"id" int PRIMARY KEY,
"ival" int
)WITH OIDS;
然后,查询该表所含有的字段名:
SELECT c.relname,a.attname from pg_class c, pg_attribute a where c.oid=a.attrelid and c.relname='t_aaa';
继续,插入一条数据后,查看该行数据所在的segement节点:
INSERT INTO "public"."t_aaa" ("id", "ival") VALUES ('1', '2')
SELECT *,gp_segment_id from t_aaa;
本文地址:https://blog.csdn.net/inrgihc/article/details/110948913
下一篇: 匈牙利算法原理与二分图描述
推荐阅读
-
mysql更新一个表里的字段等于另一个表某字段的值实例
-
mysql更新一个表里的字段等于另一个表某字段的值实例
-
Greenplum表里的8个隐含字段
-
UPDATE语句:将一个表里的字段更新到另一个表的字段里的语句
-
在S/4HANA扩展字段的Available Fields列表里,看不到自己创建的扩展字段该怎么办 SAPSAP云平台SAP Cloud PlatformSAP成都研究院Cloud
-
在S/4HANA扩展字段的Available Fields列表里,看不到自己创建的扩展字段该怎么办 SAPSAP云平台SAP Cloud PlatformSAP成都研究院Cloud
-
求教个mysql基础有关问题.(PHP中)复制一条id为a的记录到同一张表里,生成一条新的记录,在此过程中修改一些字段的值,该怎么写
-
请问大家,你们遇到的项目里面登录注册模块的数据表有哪些,每个表里面都有什么字段?
-
通过sql找到一张表里有那些字段重复,并且删除重复的数据留id最小的一条 ,使用语法in循环删除,删除id在某个区间的数据
-
求教个mysql基础有关问题.(PHP中)复制一条id为a的记录到同一张表里,生成一条新的记录,在此过程中修改一些字段的值,该怎么写