apoc.trigger.add
This procedure is not intended to be used in a cluster environment, and may act unpredictably. |
Please note that this procedure is deprecated. Use the following ones instead, which allow for better support in a cluster:
where databaseName is the database where we want to execute the triggers. |
Syntax |
|
||
Description |
Adds a trigger to the given Cypher statement. The selector for this procedure is {phase:'before/after/rollback/afterAsync'}. |
||
Input arguments |
Name |
Type |
Description |
|
|
The name of the trigger to add. |
|
|
|
The query to run when triggered. |
|
|
|
|
|
|
|
The parameters for the given Cypher statement. The default is: |
|
Return arguments |
Name |
Type |
Description |
|
|
The name of the trigger. |
|
|
|
The query belonging to the trigger. |
|
|
|
|
|
|
|
The parameters for the given Cypher statement. |
|
|
|
Whether or not the trigger was installed. |
|
|
|
Whether or not the trigger was paused. |
Enable Triggers
By default triggers are disabled.
We can enable them by setting the following property in apoc.conf
:
apoc.trigger.enabled=true
apoc.trigger.refresh=60000
Option Key | Value | Description |
---|---|---|
apoc.trigger.enabled |
true/false, default false |
Enable/Disable the feature |
apoc.trigger.refresh |
number, default 60000 |
Interval in ms after which a replication check is triggered across all cluster nodes |
Usage Examples
The examples in this section are based on the following graph:
CREATE (:Counter {count:0})
CREATE (f:Foo);
Let’s create a trigger that keeps a count of the number of nodes that have been deleted:
CALL apoc.trigger.add(
'count-removals',
'MATCH (c:Counter)
SET c.count = c.count + size([f IN $deletedNodes WHERE id(f) > 0])',
{}
);
name | query | selector | params | installed | paused |
---|---|---|---|---|---|
"count-removals" |
{} |
{} |
TRUE |
FALSE |
We’ll now delete the Foo
node:
MATCH (f:Foo)
DELETE f;
0 rows available after 20 ms, consumed after another 0 ms
Deleted 1 nodes
And finally, let’s check that the count
property on our Counter
node has been incremented:
MATCH (c:Counter)
RETURN c.count as count;
count |
---|
1 |