Установите схему по умолчанию при запросе в pgAdmin 4 с помощью инструмента запросов

Всякий раз, когда мне нужно выполнить команды sql в pgAdmin 4, я должен добавить schema_name с таблицами. Например: -

SELECT * FROM my_schema.users //where myschema is schema name
ORDER BY id ASC  

Есть ли способ выполнить команды sql в pgAdmin 4 без имени схемы, заранее установив схему по умолчанию.

Что-то вроде этого

SELECT * FROM programme
ORDER BY id ASC 

- без указания имени схемы с таблицей.

Есть ли способ установить схему по умолчанию в pgAdmin 4 для запросов в инструменте sql?


person Subin Chalil    schedule 16.08.2017    source источник


Ответы (1)


Вы можете сделать это двумя способами:

SET search_path = my_schema, "$user", public; -- For current session only

ALTER ROLE your_role SET search_path = my_schema, "$user", public; -- Persistent, for role

Вы также можете установить его для всей базы данных так же, как и для роли.

РЕДАКТИРОВАТЬ: просто чтобы объяснить, что это делает - это изменит, где и в каком порядке Postgres будет искать объекты, соответствующие идентификаторам объектов, которые не имеют префикса с именем схемы.

person Łukasz Kamiński    schedule 16.08.2017
comment
Может быть, ТАК делает меня ленивым. Мне не приходило в голову просто попробовать это в окне инструмента запросов, пока я не увидел этот ответ! В любом случае спасибо! - person AbuNassar; 18.08.2018
comment
@ieXcept Это имена схем, которые вы хотите, чтобы PostgreSQL просматривал при поиске объектов (таких как таблица, представление), если они не имеют префикс имени схемы. "$user" будет заменено именем вашей роли, если у вас есть собственная схема. Порядок их важен, он идет слева направо. - person Łukasz Kamiński; 19.11.2018