apoc.schema.assert
This procedure is not considered safe to run from multiple threads. It is therefore not supported by the parallel runtime. For more information, see the Cypher Manual → Parallel runtime. |
Syntax |
|
||
Description |
Drops all other existing indexes and constraints when |
||
Input arguments |
Name |
Type |
Description |
|
|
A map that pairs labels with lists of properties to create indexes from. |
|
|
|
A map that pairs labels with lists of properties to create constraints from. |
|
|
|
Whether or not to drop all other existing indexes and constraints. The default is: |
|
Return arguments |
Name |
Type |
Description |
|
|
The label associated with the constraint or index. |
|
|
|
The property key associated with the constraint or index. |
|
|
|
The property keys associated with the constraint or index. |
|
|
|
Whether or not this is a uniqueness constraint. |
|
|
|
The action applied to this constraint or index; can be ["KEPT", "CREATED", "DROPPED"] |
Usage Examples
CALL apoc.schema.assert({
Person: ["id"]
}, {
Person: ["name"]
});
We can create a uniqueness constraint on :Person(name)
and an index on :Person(id)
by running the following query:
label | key | keys | unique | action |
---|---|---|---|---|
"Person" |
"id" |
["id"] |
FALSE |
"CREATED" |
"Person" |
"name" |
["name"] |
TRUE |
"CREATED" |
We can drop all constraints and indexes, by running the following query.
Note that the cancellation mechanism doesn’t consider indexes of type LOOKUP
and multi-token indexes, that is indexes applicable to multiple rel-types or multiple labels,
for example CREATE FULLTEXT INDEX titlesAndDescriptions FOR (n:Movie|Book) ON EACH [n.title, n.description]
or CREATE FULLTEXT INDEX fullIdxRel FOR ()-[r:TYPE_1|TYPE_2]-() ON EACH [r.alpha, r.beta]
.
This because they cannot be re-created by the apoc.schema.assert
procedure:
CALL apoc.schema.assert({}, {});
label | key | keys | unique | action |
---|---|---|---|---|
"Person" |
"id" |
["id"] |
FALSE |
"DROPPED" |
"Person" |
"name" |
["name"] |
TRUE |
"DROPPED" |