如何将模式添加到PostgreSQL数据库的默认搜索路径?

5

我已经知道如何为每个数据库或用户设置search_path(alter database set search_path to schema1,schema2,...)。

我想做的是将模式附加到默认的搜索路径中。我知道可以获取当前的搜索路径(show search_path),但这可能在会话期间被更改。

目的类似于:

create schema postgis;
set search_path to postgis;
create extension postgis;
alter database the_db set search_path to <the current default>, postgis;

我可以手动完成,但我希望将其添加到一个函数中,该函数可以在用户更改会话搜索路径后调用。


3
你是如何追加的? - codesmith
你找到一种追加的方法了吗? - Bruno Wego
2个回答

2

这会更新当前会话和未来会话的search_path。参考这两个帖子


    DO $$
    BEGIN
      execute 'alter database '||current_database()||' set search_path to '||current_setting('search_path')||',extensions';
      execute 'set search_path to '||current_setting('search_path')||',extensions';
    END
    $$;

1
啊,找到了。
对于我的目的,我可以这样做:
set search_path to default;

在添加之前。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接