apoc.trigger.add过程Cypher 5 中已弃用Cypher 25 中已移除
|
此过程不适用于集群环境,使用时可能会出现不可预期的行为。 |
|
在 APOC 2025.06 版本中,该过程已从 APOC 核心库中移除。请改用 如果您使用的是 APOC 2025.06 或更高版本,该过程在 Cypher 25 中不可用,但仍可与 Cypher 5 一起使用。有关更多信息,请参阅 APOC 和 Cypher 版本。 |
语法 |
|
||
描述 |
为指定的 Cypher 语句添加触发器。此过程的选择器为 {phase:'before/after/rollback/afterAsync'}。 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
要添加的触发器名称。 |
|
|
|
触发时运行的查询语句。 |
|
|
|
|
|
|
|
给定 Cypher 语句的参数。默认值为: |
|
返回参数 |
名称 |
类型 |
描述 |
|
|
触发器的名称。 |
|
|
|
属于该触发器的查询语句。 |
|
|
|
|
|
|
|
给定 Cypher 语句的参数。 |
|
|
|
触发器是否已安装。 |
|
|
|
触发器是否已暂停。 |
|
启用触发器
默认情况下,触发器是禁用的。我们可以通过在 apoc.conf 中设置以下属性来启用它们:
apoc.trigger.enabled=true
apoc.trigger.refresh=60000
| 选项键 | 值 | 描述 |
|---|---|---|
apoc.trigger.enabled |
true/false,默认 false |
启用/禁用该功能 |
apoc.trigger.refresh |
数字,默认 60000 |
触发集群节点间复制检查的间隔(毫秒) |
使用示例
本节中的示例基于以下图数据
CREATE (:Counter {count:0})
CREATE (f:Foo);
让我们创建一个触发器,用于统计已被删除节点的数量
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 |
现在我们删除 Foo 节点
MATCH (f:Foo)
DELETE f;
0 rows available after 20 ms, consumed after another 0 ms
Deleted 1 nodes
最后,让我们检查 Counter 节点上的 count 属性是否已增加
MATCH (c:Counter)
RETURN c.count as count;
| count |
|---|
1 |