关键字:
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
一个行版本在它所处的表内的物理位置