apoc.schema.assert
|
此过程不被认为是多线程安全运行的。因此,并行运行时不支持此过程。欲了解更多信息,请参阅 Cypher 手册 → 并行运行时。 |
语法 |
|
||
描述 |
当 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
一个映射,将标签与属性列表配对以创建索引。 |
|
|
|
一个映射,将标签与属性列表配对以创建约束。 |
|
|
|
是否删除所有其他现有索引和约束。默认值为: |
|
返回参数 |
名称 |
类型 |
描述 |
|
|
与约束或索引关联的标签。 |
|
|
|
与约束或索引关联的属性键。 |
|
|
|
与约束或索引关联的属性键列表。 |
|
|
|
这是否是唯一性约束。 |
|
|
|
应用于此约束或索引的操作;可以是 ["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" |