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

Дополнительные возможности клиента psql

В этой главе приводится дополнительная информация о клиентах PostgreSQL – приложениях, обеспечивающих пользовательский интерфейс с сервером PostgreSQL.

В настоящее время наибольшее распространение получили две программы: клиент командной строки psql и его графический аналог PgAccess. Клиент psql устанавливается по умолчанию, а для установки PgAccess следует задать ключ --withtcl во время компиляции исходных текстов PostgreSQL (как упоминалось в главе 2).


Основные сведения о клиенте psql приводились в главе 4. В этом разделе рассматриваются его нетривиальные возможности. В частности, здесь приводится полный список ключей командной строки и описания всех команд psql. Кроме того, в этом разделе рассматриваются и такие темы, как загрузка входных данных SQL из внешних файлов, работа с журналом из командной строки и динамическая подстановка переменных в команды SQL.

Параметры командной строки

Полная команда запуска psql имеет следующий синтаксис:

psql[ ключи ] [ база_данных [ пользователь ] ]

Необязательный параметр база_данных определяет базу данных, к которой производится исходное подключение. Необязательный параметр пользователь определяет имя пользователя PostgreSQL, применяемое для подключения. При отсутствии этих параметров используются имя пользователя операционной системы, запустившего программу, и ассоциированная с ним база данных.

В командной строке также могут задаваться дополнительные ключи. По умолчанию psql поддерживает как стандартные короткие ключи в стиле Unix (например, – с), так и длинные ключи в стиле GNU (например, --command). В некоторых системах второй вариант недоступен. В следующем перечне приведены короткие ключи Unix, всегда состоящие из одной буквы, за которыми указывается эквивалентный длинный ключ.

  • – а, – echo – alI. Включение режима полного вывода эха для всех строк, полученных psql. Ключ обычно используется при написании сценариев и эквивалентен команде \set ECHO all клиента psql.
  • – A, – no-align. Клиент psql выводит результаты без выравнивания. Если ключ не задан, по умолчанию выбирается режим вывода с выравниванием.
  • – с команда, --command команда. Вместо запуска в интерактивном режиме psql выполняет всего одну команду. Команда должна иметь правильный синтаксис SQL, причем в ней не могут использоваться специфические команды psql.
  • – d база_данных, --dbname база_данных. База данных, к которой производится исходное подключение.
  • – е, --echo-queries. Включение режима вывода эха для запросов.
  • – Е, --echo-hidden. Включение режима вывода скрытых запросов, сгенерированных командами psql. Аналогичного эффекта можно добиться командой \set ECHOJHIDDEN клиента psql.
  • – f файл, --filе файл. Вместо запуска в интерактивном режиме psql читает код SQL из файла с заданным именем и выполняет его так, как если бы он был введен непосредственно в командной строке. После обработки файла psql завершает работу.
  • – F разделитель, – field-separator разделитель. Заданный символ используется psql в качестве разделителя нолей.
  • – h хост, --host хост. Имя компьютера, на котором работает сервер PostgreSQL. Обычно не является обязательным при подключении к локальному серверному процессу с использованием доменных сокетов Unix. Тем не менее если процесс postmaster работает с файлом доменного сокета в каталоге, отличном от принятого по умолчанию каталога /tmp, то параметр хост с начальным символом / интерпретируется как локальный каталог, содержащий файл доменного сокета (например, при передаче параметра – h /var/pgsql клиент psql ищет файл доменного сокета в каталоге /var/pgsql).
  • – H, – html. Запуск psql в режиме вывода в формате HTML.
  • – I, --II st. Вывод списка баз данных, к которым может подключиться клиент.
  • – о файл, – output файл. Выходные данные psql направляются в заданный файл.
  • – р порт, – port порт. Порт TCP/IP (или числовой доменный сокет Unix), на котором в данный момент ведется прослушивание. Совпадает со значением переменной PGPORT (по умолчанию – 5432).
  • – Р имя=значение, --pset имя=зпачение. Параметры форматирования выходных данных в синтаксисе команды \pset. Имена совпадают с именами параметров \pset, но значение параметра отделяется от имени не пробелом, а знаком равенства (=).
  • – q, --quiet. Режим минимального вывода, в котором не выводятся ни информационные сообщения psql, ни пояснительный текст.
  • – R разделитель, – record-separator разделитель. Заданный символ используется psql в качестве разделителя записей.
  • – s, --single-step. Пошаговый режим работы. После выполнения команды SQL пользователю предлагается продолжить или завершить работу.
  • – S, --single-line. Строчный режим работы. В этом режиме символ новой строки интерпретируется как символ точки с запятой (;), завершающий команду SQL.
  • – 1, --tuples – onlу. Подавление вывода дополнительных данных (например, имен полей и итоговых данных). В psql эта задача решается командой \t.
  • – Т атрибут, – table-attr атрибут. Атрибут HTML, включаемый в тег <table> в режиме вывода HTML (например, width=100X). Чтобы передать в этом параметре несколько табличных атрибутов, заключите их в кавычки. В psql атрибуты также могут задаваться командой \pset.
  • – U пользователь, – username пользователь. Подключение к базе данных с заданным именем пользователя.
  • – v имя=значение, --variable имя=значение. Присваивание значения переменной с заданным именем (по аналогии с командой \set в psql). Значение отделяется от имени не пробелом, а знаком равенства (=).
  • – V, --version. Вывод информации о версии.
  • – W. – password. Запрос пароля перед подключением к базе данных. Введенный пароль продолжает действовать в течение всего сеанса psql.
  • – х, – expanded. Расширенный режим форматирования записей. Активизируется в psql командой \х.
  • – X, --no-psqlrc. Запрет чтения и выполнения стартового файла (~/.psqlrc).
  • – ? , --help. Вывод краткой справки по аргументам командной строки psql.

Внимание
В версии 7.0 код, запрашивающий пароль у пользователя, если серверный процесс требует аутентификации при подключении к базе, работает нестабильно, что иногда приводит к ошибке и отказу в подключении. Если вы знаете, что подключение должно сопровождаться аутентификацией, задайте ключ принудительного запроса пароля – W (--password)
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.