首先是分区表建立的语句。
create Table class
(
id numeric,
name varchar(10),
age numeric
)
Partition By list ( age) ;
CREATE TABLE class_age11 PARTITION OF class
FOR VALUES in (11) Tablespace pg_default;
CREATE TABLE class_age12 PARTITION OF class
FOR VALUES in (12) Tablespace pg_default;
CREATE TABLE class_age13 PARTITION OF class
FOR VALUES in (13) Tablespace pg_default;
CREATE TABLE class_agedefault PARTITION OF class
default Tablespace pg_default;
第一次遇到permission denied问题是在创建分区时没有指定表空间。这个在建表过程中是不会报错的。
注意表空间要指定在最末一级,比如上面这个语句表空间不能写在主表创建语句后面,而要写在分区表创建语句后,如果是二重分区就要写在二重分区创建语句后;简单来说,tablespace不能与partition by写在同一个句子里。
第二次遇到permission denied问题是,我之前一直以为对主表赋权就相当于对所有分区表赋权,但实际上需要对所有分区表分别赋权。