Работа с переменными
Изменение приглашений
Чтобы изменить приглашение 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=#