GaussDB 200修改索引只调用索引名提示索引不存在

举报
华为GaussDB 发表于 2019/07/18 10:27:42 2019/07/18
【摘要】 作者(Author)* 范建华 00306692 适用操作系统(Applicable OS)* SuSE Linux11 适用版本(Applicable Version)* GaussDB 200 适用产品线(Applicable Product Line)* 所有集成GaussDB 200的产品 更新记录(Ch...

 

背景及现象描述(Background and Symptom)*

--创建分区表索引HR_staffS_p1_index1,不指定索引分区的名字。

CREATE INDEX HR_staffS_p1_index1 ON HR.staffS_p1 (staff_ID) LOCAL;

--创建分区索引HR_staffS_p1_index2,并指定索引分区的名字。

CREATE INDEX HR_staffS_p1_index2 ON HR.staffS_p1 (staff_ID) LOCAL

(

    PARTITION staff_ID1_index,

    PARTITION staff_ID2_index TABLESPACE example3,

    PARTITION staff_ID3_index TABLESPACE example4

) TABLESPACE example;

 

--修改索引分区staff_ID1_index的表空间为example1:

调用“ALTER INDEX HR_staffS_p1_index2 MOVE PARTITION staff_ID2_index TABLESPACE example1;”提示索引不存在。




原因分析(Cause Analysis)*

重新创建索引CREATE INDEX HR_staffS_p1_index2 MOVE PARTITION staff_ID2_index TABLESPACE example1。提示索引已存在,然后我们通过\d+ HR.staffS_p1 发现索引已存在。

我们推测是当前模式是public模式,而不是hr模式,导致检索不到该索引。

我们使用“ALTER INDEX hr.HR_staffS_p1_index2 MOVE PARTITION staff_ID2_index TABLESPACE example1;”验证推测,发现调用成功。

接着调用ALTER SESSION SET CURRENT_SCHEMA TO hr;再次调用“ALTER INDEX HR_staffS_p1_index2 MOVE PARTITION staff_ID2_index TABLESPACE example1;”发现设置成功。

说明当前默认模式不同导致索引修改不成功。



解决办法(Solution)*

在操作表、索引、视图时加上schema引用,格式:schema.table。


建议与总结(Suggestion and Summary)

在数据库中操作表、索引、视图时加上schema是一个非常好的习惯。




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。