人大金仓数据库KingbaseES 表中的系统字段介绍

102 阅读1分钟

关键字:

oid、tableoid、xmin、xmax、cmin、cmax、人大金仓

每个表都会有几个系统字段,这些字段是由系统隐含定义的。这些字段在ksql使用“\d”命令的结果中并不显示,但请记住实际表中还存在这些隐含字段。因为表中已隐含了某些名字的字段,所以用户定义的字段名称不能再使用这些名字,这个限制与名字是否为关键字没有关系,即使字段名称用双引号括起来也不行。

表中的系统字段

这些系统字段如下:

  • oid

行对象标识符(对象ID)。这个字段只有在创建表时使用了“with oids”或配置参数“default_with_oids”的值为真时才出现。这个字段的类型是oid(类型名和字段名同名)。

  • tableoid

包含本行的表的oid。对父表(该表存在有继承关系的子表)进行查询时,使用这个字段,就可以知道某一行来自父表还是子表,以及是哪个子表。Tableoid可以和pg_class的oid字段连接起来获取表名字。

  • xmin

插入该版本的事务ID

  • xmax

删除此行时的事务ID,第一次插入时,此字段为0.如果查询出来此字段不为0,则可能是删除这行的事务还没有提交,或者是删除此行的事务回滚掉了

  • cmin

事务内部插入类操作的命令ID,此标识是从0开始的

  • ctid

一个行版本在它所处的表内的物理位置