代码拉取完成,页面将自动刷新
执行ALTER TABLE PARTITION时,报错如下。
ERROR:start value of partition "XX" NOT EQUAL up-boundary of last partition.
在同一条ALTER TABLE PARTITION语句中,既存在DROP PARTITION又存在ADD PARTITION时,无论它们在语句中的顺序是什么,openGauss总会先执行DROP PARTITION再执行ADD PARTITION。执行完DROP PARTITION删除末尾分区后,再执行ADD PARTITION操作会出现分区间隙,导致报错。
为防止出现分区间隙,需要将ADD PARTITION的START值前移。 示例如下。
--创建分区表partitiontest。
postgres=# CREATE TABLE partitiontest
(
c_int integer,
c_time TIMESTAMP WITHOUT TIME ZONE
)
PARTITION BY range (c_int)
(
partition p1 start(100)end(108),
partition p2 start(108)end(120)
);
--使用如下两种语句会发生报错:
postgres=# ALTER TABLE partitiontest ADD PARTITION p3 start(120)end(130), DROP PARTITION p2;
ERROR: start value of partition "p3" NOT EQUAL up-boundary of last partition.
postgres=# ALTER TABLE partitiontest DROP PARTITION p2,ADD PARTITION p3 start(120)end(130);
ERROR: start value of partition "p3" NOT EQUAL up-boundary of last partition.
--可以修改语句为:
postgres=# ALTER TABLE partitiontest ADD PARTITION p3 start(108)end(130), DROP PARTITION p2;
postgres=# ALTER TABLE partitiontest DROP PARTITION p2,ADD PARTITION p3 start(108)end(130);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。