Иллюстрированный самоучитель по PostgreSQL

Работа с переменными

Изменение приглашений

Чтобы изменить приглашение psql, достаточно изменить значение соответствующей переменной командой \set. Символ % является префиксом стандартных переменных, перечисленных в табл. 6.2. Символ \n используется для перевода строки, остальные символы выводятся обычным образом. Команда в листинге 6.7 изменяет переменную PROMPT1 и включает в стандартное приглашение дополнительный префикс psql:

Листинг 6.7. Настройка приглашений.

testdb=# Nset PROMPT1 'psql:%/%R%#'
psql:testdb=#

Таблица 6.2. Стандартные переменные в приглашениях.

Обозначение Описание
%~ Имя текущей базы данных. Если используется база данных по умолчанию, в приглашении выводится тильда (~)
# Знак #, если текущий пользователь зарегистрирован в качестве суперпользователя базы данных. В противном случае выводится знак >
%> Номер порта, на котором сервер базы данных принимает подключения
%/ Имя текущей базы данных
Имя сервера, на котором работает PostgreSQL, усеченное до первой точки (например, "yourserver.com" в приглашении превращается в "yourserver")
IM Полное имя сервера, на котором работает PostgreSQL. Если информация недоступна, в приглашении выводится строка "localhost"
%n Текущее имя пользователя базы данных
%R В приглашении PROMPT1 обычно выводится знак равенства (=); в строчном режиме выводится знак л; при разрыве связи с сервером выводится восклицательный знак (!). В приглашении PROMPT2 вместо знака равенства обычно выводится дефис (-), а в начале новой строки в незавершенной команде выводится соответствующий символ (например, если в многострочном запросе осталась открытая круглая скобка, то переменная Ж включит круглую скобку в приглашение). В приглашении PROMPT3 не выводится ничего
% ЧИСЛО Символ, заданный в виде десятичного, восьмеричного или шестнадцатеричного кода. Восьмеричные коды имеют префикс 0; шестнадцатеричные коды имеют префикс Ох; остальные числа интерпретируются как десятичные
%: переменная Значение переменной в psql задается с префиксом :
% 'команда В приглашение вставляются выходные данные заданной команды

Примеры приглашений

Комбинируя разные переменные в команде \set, можно придать приглашению любую желаемую форму. Пример создания нового приглашения для переменной PROMPT1 приведен в листингах 6.8 и 6.9.

Листинг 6.8. Создание приглашения с именем хоста, портом и именем пользователя.

testdb=# \set PROMPT1 '[*m:*>:*n;]<</)= '
[host:5432:postgres](testdb)=

Листинг 6.9. Создание приглашения с текущей датой, именем базы данных и именем пользователя.

testdb=# \set PROMPT1 '\
[Fri Aug 3 21:44:30 POT 2001]
postgres:testdb=#
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.