SHOW PROCEDURES

可以使用 SHOW PROCEDURES 列出所有可用的过程。

命令 SHOW PROCEDURES 只返回默认输出。要获得完整输出,请使用可选的 YIELD 命令。完整输出:SHOW PROCEDURES YIELD *

此命令将生成一个包含以下列的表

表 1. 列出过程输出
描述 类型

name

过程的名称。默认输出

STRING

description

过程描述。默认输出

STRING

mode

过程模式,例如 READWRITE默认输出

STRING

worksOnSystem

过程是否可以在 system 数据库上运行。默认输出

BOOLEAN

signature

过程的签名。

STRING

argumentDescription

过程的参数列表,以字符串和布尔值的映射形式,包含 nametypedefaultisDeprecateddescription

LIST<MAP>

returnDescription

过程返回值的列表,以字符串和布尔值的映射形式,包含 nametypeisDeprecateddescription

LIST<MAP>

admin

如果此过程是管理过程,则为 true

BOOLEAN

rolesExecution

允许执行此过程的角色列表。如果缺少 SHOW ROLE 权限,则为 null

LIST<STRING>

rolesBoostedExecution

允许在使用增强模式执行此过程时使用的角色列表。如果缺少 SHOW ROLE 权限,则为 null

LIST<STRING>

isDeprecated

过程是否已弃用。版本 5.9 中引入

BOOLEAN

deprecatedBy

如果已弃用,要使用的替代过程;否则为 null版本 5.21 中引入

STRING

option

额外输出的映射,例如过程是否已弃用。

MAP

过程的弃用信息在 isDeprecatedoption 两列中返回。

语法

有关语法描述的更多详细信息,请参阅此处

列出所有过程
SHOW PROCEDURE[S]
[YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

使用 RETURN 子句时,YIELD 子句是强制性的,不得省略。

列出当前用户可以执行的过程
SHOW PROCEDURE[S] EXECUTABLE [BY CURRENT USER]
[YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

使用 RETURN 子句时,YIELD 子句是强制性的,不得省略。

列出指定用户可以执行的过程
SHOW PROCEDURE[S] EXECUTABLE BY username
[YIELD { * | field[, ...] } [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]
[WHERE expression]
[RETURN field[, ...] [ORDER BY field[, ...]] [SKIP n] [LIMIT n]]

需要 SHOW USER 权限。此命令不能用于 LDAP 用户。

使用 RETURN 子句时,YIELD 子句是强制性的,不得省略。

列出所有过程

要列出所有可用过程的默认输出列,可以使用 SHOW PROCEDURES 命令。如果需要所有列,请使用 SHOW PROCEDURES YIELD *

查询
SHOW PROCEDURES
表 2. 结果
name description mode worksOnSystem

"cdc.current"

"返回可用于流式传输更改的当前更改标识符。"

"READ"

false

"cdc.earliest"

"返回可用于流式传输更改的最早更改标识符。"

"READ"

false

"cdc.query"

"查询由提供的更改标识符观察到的更改。"

"READ"

false

"db.awaitIndex"

"等待索引上线(例如:CALL db.awaitIndex("MyIndex", 300))。"

"READ"

true

"db.awaitIndexes"

"等待所有索引上线(例如:CALL db.awaitIndexes(300))。"

"READ"

true

"db.checkpoint"

"启动并等待新的检查点,或等待任何正在进行的检查点完成。请注意,这会暂时禁用 dbms.checkpoint.iops.limit 设置,以使检查点更快完成。这可能会因 IO 负载增加而导致事务吞吐量略有下降。"

"DBMS"

true

"db.clearQueryCaches"

"清除所有查询缓存。"

"DBMS"

true

"db.createLabel"

"创建标签"

"WRITE"

false

"db.createProperty"

"创建属性"

"WRITE"

false

"db.createRelationshipType"

"创建关系类型"

"WRITE"

false

"db.index.fulltext.awaitEventuallyConsistentIndexRefresh"

"等待最近提交的事务更新应用于任何最终一致的全文索引。"

"READ"

true

"db.index.fulltext.listAvailableAnalyzers"

"列出全文索引可以配置的可用分析器。"

"READ"

true

"db.index.fulltext.queryNodes"

"查询给定的全文索引。返回匹配的节点及其 Lucene 查询分数,按分数排序。options 映射的有效键为:'skip' 跳过前 N 个结果;'limit' 限制返回结果的数量;'analyzer' 使用指定的分析器作为此查询的搜索分析器。"

"READ"

true

"db.index.fulltext.queryRelationships"

"查询给定的全文索引。返回匹配的关系及其 Lucene 查询分数,按分数排序。options 映射的有效键为:'skip' 跳过前 N 个结果;'limit' 限制返回结果的数量;'analyzer' 使用指定的分析器作为此查询的搜索分析器。"

"READ"

true

"db.info"

"提供有关数据库的信息。"

"READ"

true

"db.labels"

"列出数据库中所有可用的标签。"

"READ"

true

"db.listLocks"

"列出数据库中的所有锁。"

"DBMS"

true

"db.ping"

"此过程可用于客户端工具测试它们是否正确连接到数据库。该过程在所有数据库中都可用,并且始终返回 true。无法调用此过程可以检测到连接故障。"

"READ"

true

行数:15

上表仅显示查询的前 15 个结果。有关 Neo4j 中所有内置过程的完整列表,请访问 操作手册 → 过程

列出带输出列过滤的过程

列出的过程可以通过多种方式进行过滤,其中一种是使用 WHERE 子句。例如,返回所有 admin 过程的名称

查询
SHOW PROCEDURES YIELD name, admin
WHERE admin
表 3. 结果
name admin

"db.clearQueryCaches"

true

"db.listLocks"

true

"db.prepareForReplanning"

true

"db.stats.clear"

true

"db.stats.collect"

true

"db.stats.retrieve"

true

"db.stats.retrieveAllAnonymized"

true

"db.stats.status"

true

"db.stats.stop"

true

"dbms.checkConfigValue"

true

"dbms.cluster.checkConnectivity"

true

"dbms.cluster.cordonServer"

true

"dbms.cluster.readReplicaToggle"

true

"dbms.cluster.uncordonServer"

true

"dbms.listConfig"

true

行数:15

上表仅显示查询的前 15 个结果。有关 Neo4j 中所有需要 admin 权限的过程的完整列表,请访问 操作手册 → 过程

列出带其他过滤器的过程

列出的过程也可以通过用户是否可以执行它们来过滤。此过滤仅通过 EXECUTABLE 子句可用,而不能通过 WHERE 子句。这是因为使用了用户的权限,而不是对可用输出列进行过滤。

使用 EXECUTABLE 子句有两种选择。第一个选项是过滤当前用户

查询
SHOW PROCEDURES EXECUTABLE BY CURRENT USER YIELD *
表 4. 结果
name description rolesExecution rolesBoostedExecution ...​

"db.awaitIndex"

"等待索引上线(例如:CALL db.awaitIndex("MyIndex", 300))。"

<null>

<null>

"db.awaitIndexes"

"等待所有索引上线(例如:CALL db.awaitIndexes(300))。"

<null>

<null>

"db.checkpoint"

"启动并等待新的检查点,或等待任何正在进行的检查点完成。请注意,这会暂时禁用 dbms.checkpoint.iops.limit 设置,以使检查点更快完成。这可能会因 IO 负载增加而导致事务吞吐量略有下降。"

<null>

<null>

"db.clearQueryCaches"

"清除所有查询缓存。"

<null>

<null>

"db.createLabel"

"创建标签"

<null>

<null>

"db.createProperty"

"创建属性"

<null>

<null>

"db.createRelationshipType"

"创建关系类型"

<null>

<null>

"db.index.fulltext.awaitEventuallyConsistentIndexRefresh"

"等待最近提交的事务更新应用于任何最终一致的全文索引。"

<null>

<null>

"db.index.fulltext.listAvailableAnalyzers"

"列出全文索引可以配置的可用分析器。"

<null>

<null>

"db.index.fulltext.queryNodes"

"查询给定的全文索引。返回匹配的节点及其 Lucene 查询分数,按分数排序。options 映射的有效键为:'skip' 跳过前 N 个结果;'limit' 限制返回结果的数量;'analyzer' 使用指定的分析器作为此查询的搜索分析器。"

<null>

<null>

"db.index.fulltext.queryRelationships"

"查询给定的全文索引。返回匹配的关系及其 Lucene 查询分数,按分数排序。options 映射的有效键为:'skip' 跳过前 N 个结果;'limit' 限制返回结果的数量;'analyzer' 使用指定的分析器作为此查询的搜索分析器。"

<null>

<null>

"db.info"

"提供有关数据库的信息。"

<null>

<null>

"db.labels"

"列出数据库中所有可用的标签。"

<null>

<null>

"db.listLocks"

"列出数据库中的所有锁。"

<null>

<null>

"db.ping"

"此过程可用于客户端工具测试它们是否正确连接到数据库。该过程在所有数据库中都可用,并且始终返回 true。无法调用此过程可以检测到连接故障。"

<null>

<null>

行数:15

上表仅显示查询的前 15 个结果。请注意,由于缺少 SHOW ROLE 权限,两个 roles 列为空。另请注意,表中不存在以下列

  • mode

  • worksOnSystem

  • signature

  • argumentDescription

  • returnDescription

  • admin

  • isDeprecated

  • deprecatedBy

  • options

使用 EXECUTABLE 子句的第二个选项是将列表过滤为仅包含特定用户可执行的过程。以下示例显示了用户 jake 可用的过程,该用户已获得数据库 admin 授予的 EXECUTE PROCEDURE dbms.* 权限。(有关 DBMS EXECUTE 权限管理的更多信息,请参阅 操作手册 → DBMS EXECUTE 权限)。

查询
SHOW PROCEDURES EXECUTABLE BY jake
表 5. 结果
name description mode worksOnSystem

"dbms.cluster.protocols"

"已安装协议的概述。"

"DBMS"

true

"dbms.cluster.routing.getRoutingTable"

"返回给定数据库的已宣传的 Bolt 能力端点,按每个端点的能力划分。例如,一个端点可能提供读取查询、写入查询和/或未来的 getRoutingTable 请求。"

"DBMS"

true

"dbms.components"

"列出 DBMS 组件及其版本。"

"DBMS"

true

"dbms.info"

"提供有关 DBMS 的信息。"

"DBMS"

true

"dbms.killConnection

"终止具有给定连接 ID 的网络连接。"

"DBMS"

false

"dbms.killConnections"

"终止具有给定连接 ID 的所有网络连接。"

"DBMS"

true

"dbms.listActiveLocks"

"列出为执行具有给定查询 ID 的查询的事务授予的活动锁请求。"

"DBMS"

true

"dbms.listCapabilities"

"列出功能"

"DBMS"

true

"dbms.listConnections"

"列出此实例上所有对用户可见的已接受的网络连接。"

"DBMS"

true

"dbms.listPools"

"列出此实例上所有对用户可见的当前注册的内存池,包括子池。"

"DBMS"

true

"dbms.queryJmx"

"按域和名称查询 JMX 管理数据。例如,":""

"DBMS"

true

"dbms.routing.getRoutingTable"

"返回给定数据库的已宣传的 Bolt 能力端点,按每个端点的能力划分。例如,一个端点可能提供读取查询、写入查询和/或未来的 getRoutingTable 请求。"

"DBMS"

true

"dbms.showCurrentUser"

"显示当前用户。"

"DBMS"

true

行数:13

© . All rights reserved.