更改用户的默认架构

OTA*_*TAR 11 sql postgresql postgresql-9.5

create schema bla;

-- then create table table_name into this schema
Run Code Online (Sandbox Code Playgroud)

然后我想为用户更改默认架构(用户是postgres)

我这样做:( ALTER ROLE postgres SET search_path TO bla;查询成功返回,没有结果).

当我尝试SELECT * FROM table_name给出错误relation "table_name" does not exist

虽然SELECT * FROM bla.table_name工作正常.

我尝试更改用户的默认架构有什么问题?

Vao*_*sun 12

我认为你需要重新考虑.随着ALTER USER ... SET 你改变

运行时配置变量的会话默认值

也来自ALTER ROLE SET 手册:

特定于角色的变量设置仅在登录时生效;

但是不要对当前会话应用更改.如果您想立即更改使用:

SET search_path TO bla;
Run Code Online (Sandbox Code Playgroud)

它将改变会话级别的路径


Dav*_*ave 5

在 PostGres 中,确切的命令是

ALTER USER 'your-user' set SEARCH_PATH = 'schema_name';
Run Code Online (Sandbox Code Playgroud)