Загрузка запросов из внешних файлов
Кроме непосредственного ввода запросов в приглашении, в psql предусмотрена возможность создания запросов и команд в файлах с последующей загрузкой их содержимого в текущий буфер. Данная возможность часто используется на практике.
Создайте файл с текстом запроса и запустите psql. Загрузка файлов в буфер запроса производится командой VI. В листинге 6.1 приведен пример загрузки простой команды SELECT из файла в буфер. В данном случае текст запроса отображается на экране, но в вашей системе по умолчанию этого может и не происходить. Чтобы содержимое загружаемого файла выводилось в psql, присвойте переменной ECHO значение all (команда \set ECHO all).
Листинг 6.1. Загрузка файла в текущий буфер
testdb=# \set ECHO all
testdb=| \i /usr/local/pgsql/query
SELECT * FROM employees WHERE firstname='Andrew';
firstname I lastname I Id
Andrew | Brookins | 100
(1 row)
Возможно, при частом выполнении этой операции удобнее воспользоваться командой \edit.
Библиотеки readline и history
Клиент psql обладает некоторыми возможностями режима командной строки, поддерживаемыми интерпретатором bash: автоматическим завершением команд, обратным поиском и историей команд (файл /home/пользователь/psql_history). Все эти возможности доступны благодаря поддержке библиотеки readline, обеспечивающей эти функции bash.
Если конфигурационный сценарий находит в системе библиотеку readline, то поддержка обратного поиска, завершения и истории команд устанавливается автоматически при компиляции PostgreSQL. Если после компиляции выяснится, что в psql эти возможности отсутствуют, это может объясняться тем, что библиотечные и/или заголовочные файлы находились в нестандартном каталоге. Если вы хотите изменить конфигурацию psql и включить поддержку расширенных средств командной строки, начните с поиска заголовочных файлов (libreadline.h, readline.h и history.h).
Определив местонахождение библиотечных и заголовочных файлов в системе, сообщите эти данных сценарию PostgreSQL configure при помощи следующих ключей:
- -with-includes=Kaталог_заголовочных_файлов
- -with-11Ь$=каталог_6иблиотечных_файлов
После изменения конфигурации постройте двоичный файл psql заново. Дополнительная информация о настройке конфигурации PostgreSQL приведена в подразделе «Этап 3. Настройка конфигурации» раздела «10 этапов установки PostgreSQL» главы 2.