Nak*_*akh 122 sql postgresql
我需要在Postgres中设置模式路径,这样我就不会每次都指定模式点表schema2.table.设置架构路径:
SET SCHEMA PATH a,b,c
Run Code Online (Sandbox Code Playgroud)
似乎只适用于mac上的一个查询会话,在关闭查询窗口后,路径变量将自身设置回默认值.
我怎样才能永久化?
Mil*_*dev 153
(如果您没有对服务器的管理员访问权限)
ALTER ROLE <your_login_role> SET search_path TO a,b,c;
Run Code Online (Sandbox Code Playgroud)
需要了解的两件重要事项:
a, b, c的顺序很重要,因为它也是查找表的模式的顺序.因此,如果默认值中的多个模式中具有相同的表名,则不存在歧义,服务器将始终使用您为其指定的第一个模式中的表search_path.jos*_*rry 119
您可以search_path在数据库级别设置默认值:
ALTER DATABASE <database_name> SET search_path TO schema1,schema2;
Run Code Online (Sandbox Code Playgroud)
或者在用户或角色级别:
ALTER ROLE <role_name> SET search_path TO schema1,schema2;
Run Code Online (Sandbox Code Playgroud)
或者,如果所有数据库中都有一个通用的默认模式,则可以使用search_path选项在配置文件中设置系统范围的默认模式.
创建数据库时,默认情况下会从名为template1的隐藏"模板"数据库创建数据库,您可以更改该数据库,以便为将来创建的所有数据库指定新的默认搜索路径.您还可以创建另一个模板数据库并用于CREATE DATABASE <database_name> TEMPLATE <template_name>创建数据库.
Chr*_*son 18
Josh是正确的,但他遗漏了一个变化:
ALTER ROLE <role_name> IN DATABASE <db_name> SET search_path TO schema1,schema2;
Run Code Online (Sandbox Code Playgroud)
在一个特定数据库中设置用户的搜索路径.
| 归档时间: |
|
| 查看次数: |
93154 次 |
| 最近记录: |