现象
创建表:
create table include_global_test (id int,col1 varchar(2))
partition by range(col1)
( partition p1 values less than ('10') ) ;
ALTER TABLE include_global_test ADD CONSTRAINT pk_include_global_test PRIMARY KEY (id);
使用工具查看主键索引,发现有两列,但是创建索引明明只有一列:
数据库版本:
现象原因
该索引为分区表的主键索引,为local索引,在创建索引时除了表的指定列,还包含tableoid列。
补充测试
01
普通表
普通表的主键约束:只包含主键列
02
分区表主键也是分区键
分区表主键也是分区键,主键索引是local,只包含主键列
03
分区表主键非分区键
分区表主键但不是分区键,主键索引是global,主键索引中除了包含主键列,还有tableoid列,主键约束:PRIMARY KEY (id) INCLUDE (tableoid)
04
分区表的global和local索引
local索引的索引列:创建索引时指定的表的字段;
global索引的索引列:除了创建索引时指定的表的字段,还有tableoid;
结论
普通表和分区表local索引的索引列:创建索引时指定的表的字段;
分区表global索引的索引列:除了创建索引时指定的表的字段,还有tableoid;
如果索引时主键,则约束定义:PRIMARY KEY (id) INCLUDE (tableoid);
其他索引根据pg_get_constraintdef() 函数查询结果为空。
数据驱动,成就未来,云和恩墨,不负所托!
云和恩墨创立于2011年,是业界领先的“智能的数据技术提供商”。公司总部位于北京,在国内外35个地区设有本地办公室并开展业务。
云和恩墨以“数据驱动,成就未来”为使命,致力于将创新的数据技术产品和解决方案带给全球的企业和组织,帮助客户构建安全、高效、敏捷且经济的数据环境,持续增强客户在数据洞察和决策上的竞争优势,实现数据驱动的业务创新和升级发展。
自成立以来,云和恩墨专注于数据技术领域,根据不断变化的市场需求,创新研发了系列软件产品,涵盖数据库、数据库存储、数据库云管和数据智能分析等领域。这些产品已经在集团型、大中型、高成长型客户以及行业云场景中得到广泛应用,证明了我们的技术和商业竞争力,展现了公司在数据技术端到端解决方案方面的优势。
在云化、数字化和智能化的时代背景下,云和恩墨始终以正和多赢为目标,感恩每一位客户和合作伙伴的信任与支持,“利他先行”,坚持投入于数据技术核心能力,为构建数据驱动的智能未来而不懈努力。
我们期待与您携手,共同探索数据力量,迎接智能未来。