SESSION SET¶
SESSION SET命令用于为当前会话设置 Schema、图、临时图或参数。
若要查看当前会话的详细信息,可使用 SHOW CURRENT_SESSION。
语法¶
- session_set_command
session_set_command ::=
'SESSION' 'SET' (
'SCHEMA' schema_reference
| 'GRAPH' ((schema_reference '/')? graph_name | temp_graph_name)
| 'VALUE' (parameter_name '=' value_expression) (',' (parameter_name '=' value_expression) )*
)
参数¶
schema_reference¶
所引用的 Schema 路径。
- 为当前会话设置 Schema 时,
schema_reference为要设置为当前会话 Schema 的所在路径。如未设置,则当前会话的 Schema 默认为/default_schema。 - 为当前会话设置图时,
schema_reference为要设置为当前会话中的图所在的 Schema 路径。若想将不在当前会话中的 Schema 中的图设置为当前会话的图,则需指定对应 Schema 路径。
路径区分大小写,必须与现有的 Schema 路径匹配。绝对路径或相对路径均可在命令中使用。您可以使用 CREATE SCHEMA 创建 Schema。关于查看当前会话 Schema 的更多信息,请参见 SHOW CURRENT_SCHEMA。
Note
为当前会话设置 Schema 或图时,当前用户必须通过隐式访问规则或显式USAGE授权获得目标 Schema 或图所属 Schema 的访问权。所有用户都隐式拥有/default_schema的访问权。该要求不适用于临时图。更多信息,请参见 Schema 访问控制。
graph_name¶
为当前会话设置的图的名称。若在 DQL 语句中未使用 USE 子句指定工作图,所设置的图将作为工作图使用。有关创建和查看所有图的信息,请参见 CREATE GRAPH 和 SHOW GRAPHS。
- 如未为当前会话设置图,但已为当前用户设置主图,则当前会话的图为当前用户的主图。此时,若在查询中未使用 USE 子句指定工作图,所设置的主图将作为工作图使用。
- 如未为当前会话设置图,且未为当前用户设置主图,则当前会话的图为空。此时,必须在每个查询中使用 USE 子句指定工作图。
temp_graph_name¶
为当前会话设置的临时图的名称。必须以井号(#)开头。若在 DQL 语句中未使用 USE 子句指定工作图,所设置的临时图将作为工作图使用。有关创建和查看临时图的信息,请参见 CREATE TEMPORARY GRAPH 和 SHOW GRAPHS。
- 如未为当前会话设置临时图,但已为当前用户设置主图,则当前会话的图为当前用户的主图。此时,若在查询中未使用 USE 子句指定工作图,所设置的主图将作为工作图使用。
- 如未为当前会话设置临时图,且未为当前用户设置主图,则当前会话的图为空。此时,必须在每个查询中使用 USE 子句指定工作图。
parameter_name¶
为当前会话的查询设置的参数名称。parameter_name必须是以美元符号($)为前缀的标识符。有关标识符的更多信息,请参见标识符命名规则。
关于执行参数的更多信息,请参见配置参数。
value_expression¶
为当前会话设置的参数取值。value_expression必须是不依赖于任何变量的表达式。
示例¶
以下示例基于示例数据集。
设置 Schema¶
'''
// 创建一个 Schema
CREATE SCHEMA IF NOT EXISTS /my_schema
'''
'''
// 为当前会话设置 Schema
SESSION SET SCHEMA /my_schema
'''
将当前 Schema 中的图设置为当前会话的图¶
'''
// 创建一个图类型
CREATE GRAPH TYPE IF NOT EXISTS my_graph_type AS {}
'''
'''
// 创建一个图
CREATE GRAPH IF NOT EXISTS my_graph TYPED my_graph_type
'''
'''
// 为当前会话设置图
SESSION SET GRAPH my_graph
'''
将指定 Schema 中的图设置为当前会话的图¶
'''
// 创建一个图类型
CREATE GRAPH TYPE IF NOT EXISTS my_graph_type AS {}
'''
'''
// 创建一个图
CREATE GRAPH IF NOT EXISTS my_graph TYPED my_graph_type
'''
'''
// 创建一个 Schema
CREATE SCHEMA IF NOT EXISTS /my_schema
'''
'''
// 为当前会话设置 Schema
SESSION SET SCHEMA /my_schema
'''
'''
// 为当前会话设置图
SESSION SET GRAPH /default_schema/my_graph
'''
设置临时图¶
'''
// 基于现有图创建临时图
CREATE TEMPORARY GRAPH IF NOT EXISTS #movie_temporary_graph AS COPY OF movie
'''
'''
// 为当前会话设置临时图
SESSION SET GRAPH #movie_temporary_graph
'''
设置多个参数¶
SESSION SET VALUE $i_1 = 10, $i_2 = 20
参数$i_1和$i_2分别被设置为10和20。在当前会话的后续查询中,可以使用这些参数。更多信息,请参见使用会话参数。