|| apoc.schema.assert - APOC 核心文档 - Neo4j 文档

apoc.schema.assert

此过程不被认为是多线程安全运行的。因此,并行运行时不支持此过程。欲了解更多信息,请参阅 Cypher 手册 → 并行运行时

详情

语法

apoc.schema.assert(indexes, constraints [, dropExisting ]) :: (label, key, keys, unique, action)

描述

dropExistingtrue 时(默认为 true),删除所有其他现有索引和约束。在操作结束时断言给定的索引和唯一约束存在。

输入参数

名称

类型

描述

indexes

MAP

一个映射,将标签与属性列表配对以创建索引。

constraints

MAP

一个映射,将标签与属性列表配对以创建约束。

dropExisting

BOOLEAN

是否删除所有其他现有索引和约束。默认值为:true

返回参数

名称

类型

描述

label

ANY

与约束或索引关联的标签。

key

STRING

与约束或索引关联的属性键。

keys

LIST<STRING>

与约束或索引关联的属性键列表。

unique

BOOLEAN

这是否是唯一性约束。

action

STRING

应用于此约束或索引的操作;可以是 ["KEPT", "CREATED", "DROPPED"]

使用示例

CALL apoc.schema.assert({
  Person: ["id"]
}, {
  Person: ["name"]
});

我们可以通过运行以下查询,在 :Person(name) 上创建唯一性约束,并在 :Person(id) 上创建索引

结果
label key keys unique action

"Person"

"id"

["id"]

FALSE

"CREATED"

"Person"

"name"

["name"]

TRUE

"CREATED"

我们可以通过运行以下查询删除所有约束和索引。请注意,此取消机制不考虑 LOOKUP 类型的索引和多令牌索引,即适用于多个关系类型或多个标签的索引,例如 CREATE FULLTEXT INDEX titlesAndDescriptions FOR (n:Movie|Book) ON EACH [n.title, n.description]CREATE FULLTEXT INDEX fullIdxRel FOR ()-[r:TYPE_1|TYPE_2]-() ON EACH [r.alpha, r.beta]。这是因为它们无法通过 apoc.schema.assert 过程重新创建。

CALL apoc.schema.assert({}, {});
结果
label key keys unique action

"Person"

"id"

["id"]

FALSE

"DROPPED"

"Person"

"name"

["name"]

TRUE

"DROPPED"

© . This site is unofficial and not affiliated with Neo4j, Inc.