<< 返回文章列表
创建表:
使用工具查看主键索引,发现有两列,但是创建索引明明只有一列:
数据库版本:
该索引为分区表的主键索引,为local索引,在创建索引时除了表的指定列,还包含tableoid列。
普通表的主键约束:只包含主键列
分区表主键也是分区键,主键索引是local,只包含主键列
分区表主键但不是分区键,主键索引是global,主键索引中除了包含主键列,还有tableoid列,主键约束:PRIMARY KEY (id) INCLUDE (tableoid)
local索引的索引列:创建索引时指定的表的字段;
global索引的索引列:除了创建索引时指定的表的字段,还有tableoid;
MogDB 数据库分区表的GLOBAL和LOCAL索引区别之索引列
2024年7月4日
李孟洁
23
现象
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);
现象原因
补充测试
普通表
分区表主键也是分区键
分区表主键非分区键
分区表的global和local索引
结论
-
普通表和分区表local索引的索引列:创建索引时指定的表的字段; -
分区表global索引的索引列:除了创建索引时指定的表的字段,还有tableoid; -
如果索引时主键,则约束定义:PRIMARY KEY (id) INCLUDE (tableoid); -
其他索引根据pg_get_constraintdef() 函数查询结果为空。