Postgresql Postgres 12中的列表分区

Postgresql Postgres 12中的列表分区,postgresql,database-partitioning,Postgresql,Database Partitioning,我得到错误:语法错误在或接近。我在这里错过了什么。我使用的是postgres12,我不知道你在哪里找到了这种语法,显然不是在。正如您所看到的,分区是使用create table创建的。。作为Postgres中的分区: 定义表格: CREATE TABLE countrymeasurements ( countrycode int NOT NULL, countryname character varying(30) NOT NULL, languagename character v

我得到错误:语法错误在或接近。我在这里错过了什么。我使用的是postgres12,我不知道你在哪里找到了这种语法,显然不是在。正如您所看到的,分区是使用create table创建的。。作为Postgres中的分区:

定义表格:

CREATE TABLE countrymeasurements
(
  countrycode int NOT NULL,
  countryname character varying(30) NOT NULL,
  languagename character varying (30) NOT NULL,
  daysofoperation character varying(30) NOT NULL,
  salesparts    bigint,
  replaceparts  bigint
)
 PARTITION BY LIST(countrycode)
 (
  partition india values(1),
  partition japan values(2),
  partition china values(3),
  partition malaysia values(4)
  );
定义分区:

CREATE TABLE countrymeasurements
(
  countrycode int NOT NULL,
  countryname character varying(30) NOT NULL,
  languagename character varying (30) NOT NULL,
  daysofoperation character varying(30) NOT NULL,
  salesparts    bigint,
  replaceparts  bigint
)
PARTITION BY LIST(countrycode);

我不知道你是从哪里找到这个语法的,显然不是在。正如您所看到的,分区是使用create table创建的。。作为Postgres中的分区:

定义表格:

CREATE TABLE countrymeasurements
(
  countrycode int NOT NULL,
  countryname character varying(30) NOT NULL,
  languagename character varying (30) NOT NULL,
  daysofoperation character varying(30) NOT NULL,
  salesparts    bigint,
  replaceparts  bigint
)
 PARTITION BY LIST(countrycode)
 (
  partition india values(1),
  partition japan values(2),
  partition china values(3),
  partition malaysia values(4)
  );
定义分区:

CREATE TABLE countrymeasurements
(
  countrycode int NOT NULL,
  countryname character varying(30) NOT NULL,
  languagename character varying (30) NOT NULL,
  daysofoperation character varying(30) NOT NULL,
  salesparts    bigint,
  replaceparts  bigint
)
PARTITION BY LIST(countrycode);

欢迎来到stackoverflow!请注意,在这里提问而不显示之前的研究可能会拒绝那些可能愿意提供帮助的人

在本例中,我检查并没有发现列表分区的正式示例。但是,如果您只是缩短语句,它将使用countrycode列中的值创建一个表以进行分区:

创建表度量值 countrycode int不为空, countryname字符varying30不为空, languagename字符不为空, daysofoperation字符varying30不为空, salesparts bigint, 替换部件bigint 按LISTcountrycode分区 ; psql descripe table命令显示分区符合要求:

psql=\d 表1.1.1测量值 列|类型|排序规则|可空|默认值 ---------+------------+------+-----+----- 国家代码|整数| |不为空| countryname |字符变量30 | |不为空| languagename |字符可变30 | |非空| daysofoperation |字符变量30 | |不为空| salesparts | bigint | || 更换零件| bigint | || 分区键:列出国家代码 然后您可以定义分区,如@a_horse_的答案中所示,并使用\u no_名称。但是,使用这种策略的一些注意事项可能是正确的

注:

当您尝试通过列表只允许4个显式分区时,值5出现时会发生什么? 文档中建议考虑哈希分区而不是列表,并选择分区的数目,而不是依赖于列值,这可能会导致非常不平衡的丰度。
欢迎来到stackoverflow!请注意,在这里提问而不显示之前的研究可能会拒绝那些可能愿意提供帮助的人

在本例中,我检查并没有发现列表分区的正式示例。但是,如果您只是缩短语句,它将使用countrycode列中的值创建一个表以进行分区:

创建表度量值 countrycode int不为空, countryname字符varying30不为空, languagename字符不为空, daysofoperation字符varying30不为空, salesparts bigint, 替换部件bigint 按LISTcountrycode分区 ; psql descripe table命令显示分区符合要求:

psql=\d 表1.1.1测量值 列|类型|排序规则|可空|默认值 ---------+------------+------+-----+----- 国家代码|整数| |不为空| countryname |字符变量30 | |不为空| languagename |字符可变30 | |非空| daysofoperation |字符变量30 | |不为空| salesparts | bigint | || 更换零件| bigint | || 分区键:列出国家代码 然后您可以定义分区,如@a_horse_的答案中所示,并使用\u no_名称。但是,使用这种策略的一些注意事项可能是正确的

注:

当您尝试通过列表只允许4个显式分区时,值5出现时会发生什么? 文档中建议考虑哈希分区而不是列表,并选择分区的数目,而不是依赖于列值,这可能会导致非常不平衡的丰度。
你花了好几天的时间阅读公司的文档吗?它是开源的,所以你可以改进它。顺便说一句,在您的问题中提供一些……作为最后的手段,您可能会使用gcc-Wall-Wextra-g编译PostGreSQL的源代码,并在debugger@BasileStarynkevitch:作为旁注:该数据库名为PostgreSQL或仅为Postgres-拼写为小写g。您是否花了几天时间阅读了的文档?它是开源的,所以你可以改进它。顺便说一句,在您的问题中提供一些……作为最后的手段,您可能会使用gcc-Wall-Wextra-g编译PostGreSQL的源代码,并在debugger@BasileStarynkevitch:作为旁注:数据库名为PostgreSQL或只是Postgres-它用小写字母g拼写。是否可以执行范围/列表P
Postgres9.5中的分区?@Sheikanazeeb文档位于可以在Postgres9.5中进行范围/列表分区吗?@Sheikanazeeb文档位于