Мне нужно установить путь к схеме в Postgres, чтобы я не каждый раз указывал таблицу точек схемы, например schema2.table
. Установить путь к схеме:
SET SCHEMA PATH a,b,c
Кажется, работает только для одного сеанса запроса на Mac, после того как я закрываю окно запроса, переменная пути возвращается к значению по умолчанию.
Как я могу сделать это постоянным?
sql
postgresql
Nakh
источник
источник
Ответы:
(И если у вас нет доступа администратора к серверу)
Необходимо знать две важные вещи:
a, b, c
имеет значение, так как это также порядок, в котором схемы будут искать таблицы. Таким образом, если у вас есть одно и то же имя таблицы в нескольких схемах среди значений по умолчанию, не будет двусмысленности, сервер всегда будет использовать таблицу из первой схемы, которую вы указали для своегоsearch_path
.источник
Вы можете установить значение
search_path
по умолчанию на уровне базы данных:Или на уровне пользователя или роли:
Или, если у вас есть общая схема по умолчанию во всех ваших базах данных, вы можете установить общесистемное значение по умолчанию в файле конфигурации с помощью параметра search_path .
Когда создается база данных, она создается по умолчанию из скрытой «шаблонной» базы данных с именем template1 , вы можете изменить эту базу данных, указав новый путь поиска по умолчанию для всех баз данных, созданных в будущем. Вы также можете создать другую базу данных шаблона и использовать ее
CREATE DATABASE <database_name> TEMPLATE <template_name>
для создания своих баз данных.источник
Джош прав, но он не учел один вариант:
Задайте путь поиска для пользователя в одной конкретной базе данных.
источник