删除索引
可以使用 DROP INDEX index_name 命令通过名称删除(移除)索引。该命令可以删除任何类型的索引,但用于支持约束的索引除外。
可以删除在与当前版本不同的 Cypher® 版本中创建的索引。例如,尽管 Cypher 25 中增加了针对多个标签或包含额外属性的 VECTOR 索引,但仍可以使用 Cypher 5 删除此类索引。
索引名称可以通过 SHOW INDEXES 命令找到,该命令会在输出列 name 中显示名称。
DROP INDEX index_name [IF EXISTS]
DROP INDEX 命令可选择是否具有幂等性。这意味着它的默认行为是:如果尝试删除同一个索引两次,会抛出错误。使用 IF EXISTS 时,如果索引不存在,则不会抛出错误且不执行任何操作。相反,系统会返回一条说明性的通知,详细说明该索引不存在。
|
删除索引需要 |
示例
删除约束支持的索引失败
无法删除用于支持约束的索引。
DROP INDEX uniqueBookIsbn
22NBC: error: data exception - index belongs to constraint. Index belongs to constraint 'uniqueBookIsbn'. 50N10: error: general processing exception - index drop failed. Unable to drop 'uniqueBookIsbn'. |
删除索引支持的约束也会同时删除该支持索引。有关详细信息,请参阅 按名称删除约束。
删除不存在的索引
如果您不确定索引是否存在,并且希望在索引存在时将其删除,且在索引不存在时不希望收到错误,请使用 IF EXISTS。
以下语句尝试删除名为 missing_index_name 的索引。
IF EXISTS 删除索引DROP INDEX missing_index_name IF EXISTS
如果存在该名称的索引,它将被删除;如果不存在,则该命令不会执行任何操作,并会返回一条说明性通知。
`DROP INDEX missing_index_name IF EXISTS` has no effect. `missing_index_name` does not exist.