ITPub博客

首页 > 数据库 > 数据库开发技术 > openGauss学习笔记-201 openGauss 数据库运维-常见故障定位案例-执行修改表分区操作时报错

openGauss学习笔记-201 openGauss 数据库运维-常见故障定位案例-执行修改表分区操作时报错

原创 数据库开发技术 作者:shuchaoyang 时间:2023-10-20 07:00:00 0 删除 编辑

openGauss学习笔记-201 openGauss 数据库运维-常见故障定位案例-执行修改表分区操作时报错201.1 执行修改表分区操作时报错201.1.1 问题现象201.1.2 原因分析201.1.3 处理办法

openGauss学习笔记-201 openGauss 数据库运维-常见故障定位案例-执行修改表分区操作时报错

201.1 执行修改表分区操作时报错

201.1.1 问题现象

执行ALTER TABLE PARTITION时,报错如下。

ERROR:start value of partition "XX" NOT EQUAL up-boundary of last partition.

201.1.2 原因分析

在同一条ALTER TABLE PARTITION语句中,既存在DROP PARTITION又存在ADD PARTITION时,无论它们在语句中的顺序是什么,openGauss总会先执行DROP PARTITION再执行ADD PARTITION。执行完DROP PARTITION删除末尾分区后,再执行ADD PARTITION操作会出现分区间隙,导致报错。

201.1.3 处理办法

为防止出现分区间隙,需要将ADD PARTITION的START值前移。示例如下。

--创建分区表partitiontest。
openGauss=# 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)
);
--使用如下两种语句会发生报错:
openGauss=# 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.
openGauss=# 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.
--可以修改语句为:
openGauss=# ALTER TABLE partitiontest ADD PARTITION p3 start(108)end(130), DROP PARTITION p2;
openGauss=# ALTER TABLE partitiontest DROP PARTITION p2,ADD PARTITION p3 start(108)end(130);


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!


原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303660