永久设置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。