永久设置Postgresql模式path

我需要在Postgres中设置模式path,以便我不会每次都指定模式点表,例如schema2.table 。 设置模式path:

  SET SCHEMA PATH a,b,c 

似乎只能用于mac上的一个查询会话,在closures查询窗口后,pathvariables将自己恢复为默认值。

我怎样才能使它永久?

(如果你没有pipe理员访问服务器)

 ALTER ROLE <your_login_role> SET search_path TO a,b,c; 

您可以在数据库级别设置默认的search_path

 ALTER DATABASE <database_name> SET search_path TO schema1,schema2; 

或者在用户或angular色级别:

 ALTER ROLE <role_name> SET search_path TO schema1,schema2; 

或者,如果在所有数据库中都有一个通用的默认模式,则可以使用search_path选项在configuration文件中设置系统范围的默认模式。

创build数据库时,默认情况下是从名为template1的隐藏“模板”数据库创build的,您可以更改该数据库以指定将来创build的所有数据库的新默认searchpath。 您还可以创build另一个模板数据库,并使用CREATE DATABASE <database_name> TEMPLATE <template_name>创build数据库。

乔希是正确的,但他遗漏了一个变化:

 ALTER ROLE <role_name> IN DATABASE <db_name> SET search_path TO schema1,schema2; 

在一个特定的数据库中设置用户的searchpath。