Разница между set, set и pset в psql
я немного путаюсь несколько раз при работе с psql
между тем, когда использовать set
и set
и pset
. Я думаю, что:
-
set
для переменных сеанса при моем подключении к БД. НапримерSET ROLE dba
; -
set
для локальных переменных для этого сеанса psql. Напримерset time 'select current_timestamp'
-
pset
для настроек psql для этого сеанса psql. Например'pset border 2'
но, я никогда не нашел то, что считал хорошим объяснением каждого. Верны ли мои предположения?
я использую PostgreSQL 9.4
1 ответов
в принципе правильно. Важным отличием является то, что SET
- Это команда SQL, а две другие-мета-команды psql, обозначенные префиксом \
.
SET
- это команда SQL для изменения параметров запуска. Он выполняется на сервере и не имеет ничего общего с psql в таковой.-
\set
- это psql в мета-команды и, в документации:устанавливает имя переменной psql для значения [...]
Примечание: эта команда не связана с командой SQL
SET
. -
\pset
- еще одна мета-команда psql. в документации:эта команда устанавливает параметры, влияющие на вывод таблицы результатов запроса