DROP INDEX使用CASCADE时会级联删除哪些依赖索引的数据库对象
DROP INDEX 附带CASCADE关键字的级联删除范围说明
官方给出的DROP INDEX标准语法如下:
DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
在语句中追加CASCADE关键字执行时,会自动级联删除所有依赖目标索引的数据库对象,同时还会递归删除依赖这些被删对象的其他对象,常见的被级联删除的对象包括:
- 基于目标索引创建的约束:例如绑定了该索引的唯一约束、排他约束,注意普通外键约束不会依赖索引,不会被级联删除
- 定义或刷新逻辑依赖目标索引的物化视图
- 依赖目标索引的其他衍生索引:例如分区表场景下关联的子分区索引、基于目标索引构建的特殊功能索引
- 显式声明依赖目标索引的自定义对象:包括自定义函数、触发器、数据库规则等
建议在执行带CASCADE的删索引操作前,先运行不带CASCADE的DROP INDEX语句,数据库会主动提示存在的依赖对象,确认无误后再追加CASCADE执行,避免误删核心业务对象。
内容的提问来源于stack exchange,提问作者Reinsbrain
相关产品推荐
相关产品推荐

