Answers:
(如果您没有对该服务器的管理员访问权限)
ALTER ROLE <your_login_role> SET search_path TO a,b,c;
要了解的两个重要事项:
a, b, c
的顺序很重要,因为这也是在表中查找模式的顺序。因此,如果您在多个默认值中的多个模式中具有相同的表名,则不会有歧义,服务器将始终使用您为指定的第一个模式中的表search_path
。您可以search_path
在数据库级别设置默认值:
ALTER DATABASE <database_name> SET search_path TO schema1,schema2;
或在用户或角色级别:
ALTER ROLE <role_name> SET search_path TO schema1,schema2;
或者,如果您所有数据库中都有一个通用的默认架构,则可以使用search_path选项在配置文件中设置系统范围的默认架构。
创建数据库后,默认情况下会从一个名为template1的隐藏“模板”数据库中创建该数据库,您可以更改该数据库以为将来创建的所有数据库指定新的默认搜索路径。您还可以创建另一个模板数据库,并用于CREATE DATABASE <database_name> TEMPLATE <template_name>
创建数据库。
乔希是正确的,但他省略了一种变化:
ALTER ROLE <role_name> IN DATABASE <db_name> SET search_path TO schema1,schema2;
在一个特定的数据库中设置用户的搜索路径。