apoc.trigger.drop

详细信息

语法

apoc.trigger.drop(databaseName, name) :: (name, query, selector, params, installed, paused)

描述

最终删除指定的触发器。

输入参数

名称

类型

描述

数据库名称 (databaseName)

STRING

要从中删除触发器的数据库名称。

名称 (name)

STRING

要删除(停止)的触发器名称。

返回参数

名称

类型

描述

名称 (name)

STRING

触发器的名称。

query

STRING

属于该触发器的查询语句。

selector

MAP

{ phase = "before" :: ["before", "rollback", "after", "afterAsync"] }

params

MAP

给定 Cypher 语句的参数。

installed

布尔值 (BOOLEAN)

触发器是否已安装。

paused

布尔值 (BOOLEAN)

触发器是否已暂停。

启用触发器

默认情况下,触发器是禁用的。我们可以通过在 apoc.conf 中设置以下属性来启用它们:

apoc.conf
apoc.trigger.enabled=true
apoc.trigger.refresh=60000
描述
选项键 描述

apoc.trigger.enabled

true/false,默认 false

启用/禁用该功能

apoc.trigger.refresh

数字,默认 60000

触发集群节点间复制检查的间隔(毫秒)

使用示例

apoc.trigger.* 过程旨在系统数据库中执行,因此必须通过打开系统数据库会话来执行。

有几种实现方法:

  • 使用 Cypher-shell 或 Neo4j Browser 时,在 Cypher 查询前加上 :use system

  • 使用 Fabric 时,在 Cypher 查询前加上 USE system

  • 使用驱动程序时,直接针对系统数据库打开会话

此外,apoc.trigger 过程接受数据库名称作为第一个参数,在该数据库中安装、更新或删除触发器。

安装、更新或删除触发器是最终一致性操作。因此,它们不会立即被添加/更新/删除,而是具有由 APOC 配置 apoc.trigger.refresh=<毫秒数> 处理的刷新率,默认值为 60000(毫秒)。

可以通过运行以下查询来删除先前安装的触发器

CALL apoc.trigger.drop('neo4j', 'count-removals');
结果
名称 (name) query selector params installed paused

"count-removals"

MATCH (c:Counter) SET c.count = c.count + size([f IN $deletedNodes WHERE id(f)  0])

{}

{}

FALSE

FALSE