我在使用Apache AGE时,遇到了一个代码:
SET search_path = ag_catalog, "$user", public;
有人能解释一下这三个部分的含义吗?还有什么其他的价值观可以采取这些?
qnyhuwrf1#
这基本上是用来设置Apache Age中的搜索路径。“search_path”是一个变量,它决定了在数据库模式中搜索对象的顺序。'ag_catalog' :这里Apache age存储它的系统目录和元数据。"$user" :这是指名称为当前用户的模式。
'ag_catalog' :
"$user" :
'public':
这是指Apache时代所有用户都可以访问的默认模式。
omtl5h9j2#
这里使用SET search_path是为了设置'ag_catalog'模式,以便在默认情况下将对象创建到模式中。分配的三个变量都是基于用户确定的优先级排序的架构。ag_catalog是具有AGE系统目录的模式,"$user"是与当前用户同名的模式,public是默认的公共模式。此外,每当引用对象时,都会遍历搜索路径,直到找到匹配的对象。
SET search_path
ag_catalog
"$user"
public
bwleehnv3#
PostgreSQL中有不同的模式或命名空间。在每个模式中可以有许多表。表通常由非限定名引用,非限定名仅由表名组成。系统通过遵循搜索路径来确定哪个表是指要查找的模式列表。搜索路径中的第一个匹配表被认为是所需的表。如果搜索路径中没有匹配项,则会报告错误,即使数据库中的其他架构中存在匹配的表名。
特定搜索查询的搜索流将按照ag_catalog、“$user”、public的顺序。
n1bvdmb64#
使用以下命令设置Apache Age的模式:
CREATE EXTENSION age; LOAD 'age'; SET search_path = ag_catalog, "$user", public;
要创建图形,请使用位于ag_catalog名称空间中的create_graph函数。
SELECT create_graph('graph_name');
要创建单个顶点,请使用CREATE子句。SELECT * FROM cypher('graph_name ',$$ CREATE(n)$$)as(v agtype);例如:
SELECT * FROM cypher('mygraph', $$ CREATE (n:Person {name: 'John Doe', age: 30}) $$) as (v agtype);
kq0g1dla5#
该代码设置PostgreSQL中当前会话的模式搜索路径。搜索路径指定PostgreSQL在不同模式中查找表和对象的顺序。
wko9yo5t6#
SET search_path命令用于设置PostgreSQL中会话的默认模式搜索路径。在ApacheAge中,此命令还用于指定模式的顺序,以搜索未限定的对象名称,如表和视图。当数据库中有多个模式时,指定搜索路径可以使您不必在查询中完全限定对象名称。这使得查询更高效、更易于编写。要指定要在Apache Age中搜索的架构,可以使用以下命令:
search_path
此命令设置搜索路径,首先在ag_catalog模式中查找对象,然后是当前用户的模式(由$user表示),最后是公共模式。public schema是PostgreSQL中的默认schema。通过将ag_catalog添加到搜索路径,可以简化查询。例如,而不是写:
SELECT * FROM ag_catalog.create_graph('Graph_Name');
你可以简单地写:
SELECT * FROM create_graph('Graph_Name');
这是因为搜索路径将ag_catalog作为搜索非限定对象名的第一个模式。总的来说,在ApacheAge中使用SET search_path可以通过指定模式的顺序来搜索非限定对象名,从而帮助您编写更高效、更简洁的查询。
6条答案
按热度按时间qnyhuwrf1#
这基本上是用来设置Apache Age中的搜索路径。“search_path”是一个变量,它决定了在数据库模式中搜索对象的顺序。
'ag_catalog' :
这里Apache age存储它的系统目录和元数据。"$user" :
这是指名称为当前用户的模式。这是指Apache时代所有用户都可以访问的默认模式。
omtl5h9j2#
这里使用
SET search_path
是为了设置'ag_catalog'模式,以便在默认情况下将对象创建到模式中。分配的三个变量都是基于用户确定的优先级排序的架构。ag_catalog
是具有AGE系统目录的模式,"$user"
是与当前用户同名的模式,public
是默认的公共模式。此外,每当引用对象时,都会遍历搜索路径,直到找到匹配的对象。
bwleehnv3#
PostgreSQL中有不同的模式或命名空间。在每个模式中可以有许多表。表通常由非限定名引用,非限定名仅由表名组成。系统通过遵循搜索路径来确定哪个表是指要查找的模式列表。搜索路径中的第一个匹配表被认为是所需的表。如果搜索路径中没有匹配项,则会报告错误,即使数据库中的其他架构中存在匹配的表名。
特定搜索查询的搜索流将按照ag_catalog、“$user”、public的顺序。
n1bvdmb64#
使用以下命令设置Apache Age的模式:
要创建图形,请使用位于ag_catalog名称空间中的create_graph函数。
要创建单个顶点,请使用CREATE子句。
SELECT * FROM cypher('graph_name ',$$ CREATE(n)$$)as(v agtype);
例如:
kq0g1dla5#
该代码设置PostgreSQL中当前会话的模式搜索路径。搜索路径指定PostgreSQL在不同模式中查找表和对象的顺序。
wko9yo5t6#
SET
search_path
命令用于设置PostgreSQL中会话的默认模式搜索路径。在ApacheAge中,此命令还用于指定模式的顺序,以搜索未限定的对象名称,如表和视图。当数据库中有多个模式时,指定搜索路径可以使您不必在查询中完全限定对象名称。这使得查询更高效、更易于编写。
要指定要在Apache Age中搜索的架构,可以使用以下命令:
此命令设置搜索路径,首先在
ag_catalog
模式中查找对象,然后是当前用户的模式(由$user表示),最后是公共模式。public schema是PostgreSQL中的默认schema。通过将
ag_catalog
添加到搜索路径,可以简化查询。例如,而不是写:你可以简单地写:
这是因为搜索路径将
ag_catalog
作为搜索非限定对象名的第一个模式。总的来说,在ApacheAge中使用
SET search_path
可以通过指定模式的顺序来搜索非限定对象名,从而帮助您编写更高效、更简洁的查询。