Postgresql как получить список баз данных

📑 Шпаргалка основных команд PostgreSQL

Вся работа с PostgreSQL происходит под пользователем postgres.

Работать с PostgreSQL можно как интерактивно, так и из командной строки. Это программа psql.

Основные команды PostgreSQL в интерактивном режиме:

  • \connect db_name — подключиться к базе данных с именем db_name
  • \du — список пользователей
  • \dp (или \z) — список таблиц, представлений, последовательностей, права доступа к ним
  • \di — индексы
  • \ds — последовательность
  • \dt – список таблиц
  • \dt+ — список всех таблиц с описанием
  • \dt *s* — список всех таблиц, содержащих s в имени
  • \ dv — просмотры
  • \dS — системные таблицы
  • \d+ — описание таблицы
  • \o — отправить результаты запроса в файл
  • \l — список базы данных
  • \i — чтение входящих данных из файла
  • \e — открытие текущего содержимого буфера запроса в редакторе (если иное не указано в переменной окружения EDITOR, по умолчанию используется vi )
  • \d «table_name» — описание таблицы
  • \я запускаю команду из внешнего файла, например \i /my/directory/my.sql
  • \pset: команда для установки параметров формата
  • \echo — выводит сообщение
  • \set — устанавливает значение переменной окружения. Без параметров выводит список текущей переменной (\unset — удаляет).
  • \? – psql
  • ссылка

  • \help — SQL ссылка
  • \q (или Ctrl+D) – программа выхода

Работа с PostgreSQL из командной строки :

  • -c (или —command): выполнить команду SQL, не выходя из интерактивного режима
  • -f file.sql: выполнить команды из файла.sql
  • -l (или —list) — список доступных баз данных
  • -U (или —username) — введите имя пользователя (например, postgres)
  • -W (или —password) — запрос на ввод пароля
  • -d имя базы данных — имя базы данных подключения к базе данных
  • -h — имя хоста (сервера)
  • -s — пошаговый режим, т.е. подтвердить все команды
  • –S – однострочный режим, т.е. новая строка выполняет запрос (избавляется от ; в конце построения SQL)
  • -V – версия PostgreSQL без ввода интерактивный режим

Примеры:

psql -U postgres -d имя_базы_данных -c «СОЗДАТЬ ТАБЛИЦУ my (some_id serial PRIMARY AND KEY, some_text text);» — выполнение команды в базе данных dbname.

psql -d dbname -H -c «SELECT * FROM my» -o my.html — вывод результата запроса в html файл.

Утилиты PostgreSQL (программы):

  • createdb и dropdb — создать и удалить базу данных (соответственно)
  • createuser и dropuser — создать и создать пользователя (соответственно)
  • pg_ctl — программа, предназначенная для решения общих задач управления (запуск, остановка, настройка параметров и т. д.)
  • postmaster — многопользовательский серверный модуль PostgreSQL (настройка уровней отладки, портов, каталогов данных)
  • initdb: создание новых кластеров PostgreSQL
  • initlocation — программа для создания директорий для вторичного хранилища базы данных
  • emptydb — физическое и аналитическое обслуживание базы данных
  • pg_dump — архивация и восстановление данных
  • pg_dumpall — резервное копирование всего кластера PostgreSQL
  • pg_restore — восстановление базы данных из архивов (.tar, .tar.gz)

Примеры резервного копирования:

Создать резервную копию базы данных mydb в сжатом виде

Создать резервную копию база данных mydb в виде простого текстового файла, включая команду для создания базы данных

Создать резервную копию базы данных mydb, как mprinted, с таблицами, содержащими платежи в названии

Печать данных из одной конкретной таблицы. Если необходимо создать резервную копию более чем одной таблицы, имена таблиц перечислены с параметром -t для каждой таблицы.

Создать резервную копию, сжатую gz

Список часто используемых параметров:

  • -h host: хост, если он не указан, будет использовать localhost или значение переменной окружения PGHOST.
  • -p порт: порт, если не указан, используется 5432 или значение переменной окружения PGPORT.
  • -u — пользователь, если не указано, используется текущий пользователь, значение также можно указать в переменной окружения PGUSER.
  • -a, —data-only — печатать только данные, сохранять данные и схему по умолчанию.
  • -b: включить в листинг крупные объекты (блоги).
  • -s, —schema-only — перечислить только схемы.
  • -C, —create — Добавляет команду для создания базы данных.
  • -c: добавление команд для удаления (удаления) объектов (таблиц, представлений и т.д.).
  • -O — не добавлять команды настройки владельца объекта (таблицы, взгляды и др.).
  • -F, —format — дамп, пользовательский, tar или обычный текстовый формат вывода.
  • -t, —table=TABLE — Укажите конкретную таблицу для дампа.
  • -v, —verbose — выводить подробную информацию.
  • -D, —attribute-inserts — используйте команду INSERT для печати списка имен атрибутов.

Резервное копирование всех баз данных с помощью команды pg_dumpall.

Восстановление таблиц из резервных копий:

psql: восстановление резервных копий таблиц, которые хранятся в виде обычного текстового файла (обычный текст) ;
pg_restore — восстановить сжатые (tar) резервные копии;

Восстановить полную резервную копию, игнорировать ошибки

Восстановить полную защищенную резервную копию, остановить при первой ошибке

Восстановить из архива , мы должны сначала создать базу данных с помощью CREATE DATABASE mydb; (если при создании резервной копии не была указана опция -C) и восстановить

Восстановить резервную копию базы данных, сжатую gz

Источник

Postgresql как чтобы получить список баз данных

psql [ option . ] [имя базы данных [имя пользователя]]

Описание

psql — это интерфейс терминала для PostgreSQL. Это позволяет вам в интерактивном режиме писать запросы, отправлять их в PostgreSQL и просматривать результаты запросов. в качестве альтернативы ввод может быть из файла или из аргументов командной строки. Кроме того, psql предоставляет ряд метакоманд и различных функций оболочки, упрощающих создание сценариев и автоматизирующих широкий спектр задач.

Параметры

Печатать все непустые строки ввода в стандартный вывод. по мере их чтения. (Это не относится к читаемым строкам в интерактивном режиме.) Это эквивалентно присвоению переменной ECHO значения all .

Переключение в режим невыровненного вывода. (Режим вывода по умолчанию — выровненный.) Это эквивалентно формату \pset unaligned .

Печатать неудавшиеся операторы SQL со стандартной ошибкой. Это эквивалентно установке переменной ECHO для ошибок.

-c command
—command= command

Указывает, что psql должен выполнить заданную командную строку command . Эту опцию можно повторять и комбинировать в любом порядке с опцией -f. Когда указан параметр -c или -f, psql не читает команды со стандартного ввода; вместо этого выйдите после обработки всех параметров -c и -f по очереди. Команда

должна быть командной строкой, которую сервер может полностью проанализировать (т. е. не содержать функций, специфичных для psql), или одной командой обратной косой черты. Поэтому вы не можете комбинировать метакоманды SQL и psql внутри параметра -c. Для этого вы можете либо использовать повторяющиеся параметры -c, либо преобразовать строку в psql , например:

( \\ является метакомандой-разделителем).

чем одна команда SQL в одной строке -c часто дает неожиданные результаты. Лучше использовать повторяющиеся команды -c или поместить несколько команд в psql std, либо используя эхо, как показано выше, либо через документ среды здесь, например:

Указывает имя базы данных для подключения. . Это эквивалентно указанию dbname в качестве первого аргумента без параметра в командной строке. Имя базы данных может быть строкой подключения. Если да, параметры строки подключения переопределяют любые конфликтующие параметры командной строки.

Также скопируйте все операторы SQL, отправленные на сервер, в стандартный вывод. Это эквивалентно установке переменной ECHO для запросов.

Повторить фактические запросы, сгенерированные \d и другими командами обратной косой черты. Вы можете использовать это для изучения внутренних операций psql. Это эквивалентно установке переменной ECHO_HIDDEN в .

-f имя_файла
—file= имя_файла

Чтение команд из файла имя_файла вместо стандартного ввода. Эту опцию можно повторять и комбинировать в любом порядке с опцией -c. Когда указан параметр -c или -f, psql не читает команды со стандартного ввода; вместо этого он завершается после обработки всех опций -c и -f по очереди. Кроме этого, эта опция в значительной степени эквивалентна метакоманде \i.

Если имя файла — (дефис), стандартный ввод читается до тех пор, пока не появится подсказка EOF или метакоманда \. Это можно использовать для чередования интерактивных входных данных с входными файлами. Обратите внимание, однако, что строка чтения в этом случае не используется (как если бы была указана опция -n).

Использование этой опции немного отличается от указания имени файла psql. В общем, оба будут делать то, что вы ожидаете, но использование -f позволяет использовать некоторые приятные функции, такие как сообщения об ошибках с номерами строк. Существует также небольшая вероятность того, что использование этой опции снизит накладные расходы при запуске. С другой стороны, вариант с использованием перенаправления ввода оболочки (теоретически) гарантирует точно такой же результат, как если бы вы все вводится вручную.

-F разделитель
—field-separator= разделитель

Использовать разделитель в качестве разделителя полей для невыровненного вывода. Это эквивалентно \pset fieldsep или \f .

-h имя хоста
—host= имя хоста

Указывает имя хоста компьютера, на котором запущен сервер. Если значение начинается с косой черты, оно будет использоваться в качестве каталога для сокета домена Unix.

Список всех доступных баз данных, затем выход. Другие варианты без подключения игнорируются. Это похоже на метакоманду \list.

При использовании этого параметра psql будет подключаться к базе данных postgres, если в командной строке не указано имя другой базы данных (параметр -d или аргумент без параметра, возможно, через запись службы, но не через переменную среды)>

Не используйте Readline для редактирования строк и не используйте историю команд. Это может быть полезно для отключения расширения вкладок при вырезании и вставке.

-o имя_файла
—output= имя_файла

Поместить все результаты запроса в имя_файла . Это эквивалентно команде \o .

Указывает расширение файла TCP-порта или сокета локального домена Unix, где сервер прослушивает подключения. по умолчанию используется значение переменной окружения PGPORT или, если оно не задано, порт, указанный во время компиляции, обычно 5432.

-P присваивание
—pset= присваивание

Указывает варианты печати, а-ля \dog . Обратите внимание, что здесь вы должны разделять имя и значение знаком равенства вместо пробела. Например, чтобы установить выходной формат LaTeX, вы можете указать -P format=latex.

Указывает, что psql должен выполнять свою работу в автоматическом режиме. По умолчанию он печатает приветственные сообщения и различные информационные результаты. При использовании этой опции ничего этого не происходит. Это полезно с опцией -c. Это эквивалентно установке для переменной SILENCE значения .

-R separator
—record-separator= separator

Использовать разделитель в качестве разделителя записей для невыровненного вывода. Это эквивалентно \pset recordsep .

Запуск в однопроходном режиме. Это означает, что пользователю предлагается отменить выполнение перед отправкой каждой команды на сервер. Используйте это для отладки скриптов.

Работает в однострочном режиме, когда оператор SQL заканчивается новой строкой, как точка с запятой.

Этот режим предназначен для тех, кто настаивает на этом, но это не так. необходимо рекомендуется использовать его. В частности, если вы смешиваете операторы SQL и метаданные в одной строке, порядок выполнения может быть не всегда ясен для неопытного пользователя. \t или \pset tuples_only

-T table_options
—table-attr= table_options

-U имя пользователя
—username= имя пользователя

Подключиться к базе данных как имя пользователя вместо имени по умолчанию. (Конечно, для этого у вас должно быть разрешение.)

-v присваивание
—set= присваивание
—variable= присваивание

Выполняет присваивание переменной, например, как метакоманда \set. Обратите внимание, что вы должны разделять имя и значение, если таковые имеются, знаком равенства в командной строке. Чтобы сбросить переменную, опустите знак равенства. Чтобы установить для переменной пустое значение, используйте знак равенства, но не вводите значение. Эти назначения выполняются во время обработки командной строки, поэтому переменные, отражающие состояние соединения, будут позже перезаписаны.

Распечатайте версию psql и выйдите.

Никогда не запрашивайте пароль. Если сервер требует аутентификации по паролю, а пароль недоступен из других источников, таких как файл .pgpass, попытка подключения завершится ошибкой. Этот параметр может быть полезен в пакетных заданиях и сценариях, когда нет пользователя, который мог бы ввести пароль.

Обратите внимание, что этот параметр останется установленным на время сеанса и, следовательно, повлияет на использование метакоманды \connect. а также первоначальная попытка подключения.

Заставить psql запрашивать пароль перед подключением к базе данных, даже если пароль не будет использоваться.

Если сервер требует аутентификации по паролю и пароль недоступен из других источников, таких как файл .pgpass, psql запросит пароль в любом случае. Однако psql теряет попытку подключения и обнаруживает, что серверу требуется пароль. В некоторых случаях стоит указать -W, чтобы избежать повторной попытки подключения.

Обратите внимание, что этот параметр остается установленным на время сеанса и, следовательно, повлияет на использование метакоманды \connect, а также на первоначальную попытку. к соединению. .

Включает режим расширенной таблицы. Это эквивалентно \x или \pset expand .

Не читать файл запуска (ни общесистемный, ни пользовательский psqlrc

Установить разделитель полей для невыровненного вывода равным нулю Это эквивалентно \pset fieldsep_zero .

Задать для невыровненного вывода нулевой байт. Это полезно для компоновки, например, с xargs -0 . Эквивалентно \pset recordsep_zero .

Этот параметр можно использовать только в сочетании с одна или несколько опций -c и /или -f Заставляет psql выполнять оператор BEGIN перед первым из этих параметров и оператор COMMIT после последнего, объединяя все операторы в одну транзакцию. Это гарантирует, что все операторы завершатся успешно или никакие изменения не применяются.

Если сами операторы содержат BEGIN , COMMIT или ROLLBACK , этот параметр не будет иметь желаемого эффекта.Также, если отдельный оператор не может быть выполнен в блоке транзакции, указание этого параметра приведет к привести к сбою всей транзакции.

Показать справку по psql и выйти Раздел с необязательными параметрами (например, default) указывает, какая часть psql поясняется: command описывает команды psql обратную косую черту; options описывает параметры командной строки, которые можно передать в psql; и переменные отобразит справку для переменных конфигурации psql.

Статус выхода

psql вернет 0 в оболочку, если он завершился нормально, 1 в случае собственной фатальной ошибки (например, нехватка памяти, файл не найден ), 2 если не удалось подключиться к серверу и сеанса не было интерактивный и 3, если произошла ошибка скрипта и была установлена ​​переменная ON_ERROR_STOP.

Использование

Подключение к базе данных

psql — это обычное клиентское приложение PostgreSQL. Чтобы подключиться к базе данных, вам необходимо знать имя целевой базы данных, имя хоста и номер порта сервера, а также имя пользователя, к которому вы хотите подключиться. psql можно узнать об этих параметрах с помощью параметров командной строки, а именно -d , -h , -p и -U . Если найден аргумент, не принадлежащий ни к одной из опций, он будет интерпретирован как имя базы данных (или имя пользователя, если имя базы данных уже указано). Не все эти параметры являются обязательными; есть полезные значения по умолчанию. Если вы не укажете имя хоста, psql будет подключаться через сокет домена Unix к серверу на локальном хосте или через TCP/IP к локальному хосту на машинах, не имеющих сокетов домена Unix. Номер порта по умолчанию определяется во время компиляции. Поскольку сервер базы данных использует то же значение по умолчанию, в большинстве случаев вам не нужно указывать порт. Имя пользователя по умолчанию — это имя пользователя вашей операционной системы, как и имя пользователя по умолчанию. имя базы данных. Обратите внимание, что вы не можете просто подключиться к любой базе данных с любым именем пользователя. Ваш администратор базы данных должен был сообщить вам о ваших правах доступа.

Если значения по умолчанию не совсем верны, вы можете сократить ввод, установив для переменных среды PGDATABASE , PGHOST , PGPORT и/или PGUSER соответствующие значения. . (Для других переменных среды см. раздел 34.15). Также рекомендуется иметь

/.pgpass, чтобы вам не приходилось регулярно вводить пароли. Дополнительную информацию см. в Разделе 34.16.

Таким образом, вы также можете использовать LDAP для поиска параметров соединения, как описано в Разделе 34.18. Дополнительную информацию обо всех доступных вариантах подключения см. в разделе 34.1.2.

Если подключение не удается по какой-либо причине (например, недостаточно прав, сервер не работает на целевом хосте и т. д.), psql возвращает ошибку. и завершает работу.

Если и stdin, и stdout являются терминальными, psql установит для клиентской кодировки значение «auto», которое определит правильную клиентскую кодировку по локали (переменные среды LC_CTYPE в системах Unix). Если это не работает должным образом, клиентское кодирование можно переопределить с помощью переменной среды PGCLIENTENCODING.

Ввод команд SQL

При нормальной работе psql запрашивает имя базы данных psql, которая в данный момент подключена. to, за которым следует строка = > . Например:

Если ненадежные пользователи получают доступ к базе данных, которая не приняла шаблон использования безопасной схемы, начните сеанс, удалив общедоступные схемы из search_path . Можно добавить options=-csearch_path= в строку подключения или указать SELECT pg_catalog.set_config(‘search_path’, », false) перед другими операторами SQL. Это соображение относится не только к psql; применяется ко всем интерфейсам для выполнения произвольных операторов SQL.

Каждый раз, когда выполняется оператор, psql также опрашивает события асинхронного уведомления. генерируются функциями LISTEN и NOTIFY.

В то время как операторы блока комментариев в стиле C передаются на сервер для обработки и удаления, psql удаляет стандартные комментарии SQL.

Метакоманды

Все, что вы вводите в psql и начинается с обратной косой черты без кавычек, является метакомандой psql, которая обрабатывается самой psql. Эти команды делают psql более полезным для администрирования или написания сценариев. Метакоманды часто называют командами прямой или обратной косой черты.

Формат команды psql представляет собой обратную косую черту, за которой сразу следует глагол команды, а затем любые аргументы. Аргументы отделяются от команды и друг от друга любым количеством пробелов.

Если вы хотите включить пробелы в аргумент, вы можете заключить их в одинарные кавычки. Чтобы включить одинарную кавычку в аргумент, введите две одинарные кавычки в тексте, заключенном в одинарные кавычки. Любое содержимое, заключенное в одинарные кавычки, также подлежит замене в стиле C для \n (новая строка), \t (табуляция), \b (возврат), \r (возврат каретки), \f (перевод страницы), \ digits ( восьмеричное) и \x цифры (шестнадцатеричное). Обратная косая черта, предшествующая любому другому символу в тексте, заключенном в одинарные кавычки, заключает в кавычки этот символ, каким бы он ни был.

Если двоеточие без кавычек ( : ) появляется в аргументе, за которым следует имя переменной psql, это будет заменяется значением переменной, как описано ниже в интерполяции SQL. Формы: ‘имя_переменной’ и :» также работают. имя_переменной», которые описаны там. : > Синтаксис позволяет проверить, определена ли переменная. Заменяется на ИСТИНА или ЛОЖЬ. Экранирование двоеточия с помощью обратной косой черты защищает вас от путаницы.

В пределах аргумент, текст заключен в обратные кавычки ( ` ) обрабатывается как командная строка, переданная оболочке. Вывод команды (с удаленными завершающими символами новой строки) заменяет текст в кавычках. Текст, заключенный в обратные кавычки, не получает никаких специальных кавычек или другой обработки за исключением того, что вхождения : имя_переменной, где имя_переменной — это имя переменной psql, заменяются значением переменной Кроме того, вхождения :’ имя_переменной ‘ заменяются правильно заключенным в кавычки значением переменной, чтобы сделать ее единственным аргументом для команду оболочки (последняя форма почти всегда предпочтительнее, если только вы не уверены, что находится в переменных). не заменить значение переменной, когда такие символы появляются в значении.

Анализ аргумента останавливается в конце строки или когда встречается еще одна обратная косая черта без кавычек. Обратная косая черта без кавычек принимается за начало новой метакоманды. Специальная последовательность \\ (две обратные косые черты) отмечает конец аргументов и продолжает синтаксический анализ операторов SQL, если таковые имеются. Таким образом, команды SQL и psql можно свободно комбинировать в одной строке. Однако аргументы метакоманды ни в коем случае не могут продолжаться дальше конца. line.

Многие метакоманды воздействуют на текущий буфер запроса. Это просто буфер, содержащий любой текст оператора SQL, который был введен, но еще не отправлен на сервер для выполнения. Это будет включать предыдущие строки ввода, а также любой текст, который появляется перед метакомандой в той же строке.

Определены следующие метакоманды:

Если формат вывода текущей таблицы не выровнен , он будет изменен на выровненный . Если он не смещен, он устанавливается на смещение. Эта команда сохранена для обратной совместимости. Более общее решение см. в \pset.

\c или \connect [ -reuse-previous= cs — эквивалентно отсутствию этого параметра. предыдущее подключение; Не только имя базы данных, пользователь, хост и порт, но и другие параметры, такие как sslmode. По умолчанию параметры повторно используются в позиционном синтаксисе, но не при указании строки conninfo. Передача первого аргумента -reuse-previous=on или -reuse-previous=off отменяет это значение по умолчанию. Если параметры используются повторно, любые параметры, не указанные явно в качестве позиционных параметров или в строке conninfo, берутся из параметров существующего соединения. Единственным исключением является то, что если настройка хоста изменена с ее предыдущего значения с использованием позиционного синтаксиса, любая настройка hostaddr, присутствующая в существующих параметрах подключения, удаляется. Также любой пароль, используемый для существующее соединение будет использоваться повторно только в том случае, если параметры пользователя, хоста и порта не изменились. Если в команде не указан или повторно не используется конкретный параметр, используется параметр libpq по умолчанию.

Если новое соединение установлено успешно, старое соединение закрывается. Если попытка подключения не удалась (неправильное имя пользователя, отказ в доступе и т. д.), предыдущее подключение будет сохранено, если psql находится в интерактивном режиме. Но при запуске неинтерактивного скрипта предыдущее соединение закрывается и сообщается об ошибке. Это может или не может закончить сценарий; в противном случае все команды доступа к базе данных завершатся ошибкой, пока другая команда \connect не будет успешно выполнена. Это разрешение было выбрано для удобства пользователя от опечаток, с одной стороны, и механизма безопасности, предотвращающего случайное действие скриптов на неправильную базу данных, с другой. Обратите внимание, что каждый раз, когда команда \connect пытается повторно использовать параметры, повторно используются значения из последнего успешного подключения, а не из последующих неудачных попыток. Однако в случае сбоя неинтерактивного \соединения повторное использование параметров позже не допускается, поскольку сценарий, вероятно, ожидает повторного использования значений из неудавшегося \соединения.

Читайте также:  Денежная компенсация за землю многодетным семьям как получить

Задает имя любой таблицы, которая печатается как результат запроса или переопределяет этот заголовок. Эта команда эквивалентна \pset title title. (Название этой команды происходит от «название», поскольку ранее оно использовалось только для установки заголовок в таблице HTML.)

Изменяет текущий рабочий каталог на . Без аргументов вносит изменения в домашний каталог текущего пользователя.

Чтобы распечатать текущий рабочий каталог, используйте \! pwd .

Возвращает информацию о текущем соединении с базой данных.

\copy < таблица [ ( список_столбцов ) ] > из < ‘filename’ читает или записывает указанный файл, psql читает или записывает файл и направляет данные между сервером и локальной файловой системой. Это означает, что доступ к этим файлам принадлежит локальному пользователю, а не серверу, и разрешения суперпользователя SQL не требуются.

При входе в программу psql выполняет команду, и данные передаются в или из него. маршрутизируются между сервером и клиентом. Опять же, привилегии выполнения принадлежат локальному пользователю, а не серверу, и привилегии суперпользователя SQL не требуются.

Синтаксис этой команды подобен команде SQL COPY. Все параметры, кроме источника/назначения данных, относятся к COPY. По этой причине к метакоманде \copy применяются особые правила синтаксического анализа. В отличие от большинства других метакоманд, \copy всегда принимает всю оставшуюся часть строки в качестве аргументов, и для аргументов не выполняется ни интерполяция переменных, ни раскрытие обратных кавычек.

См. авторские права и условия распространения PostgreSQL.

\crosstabview [colV [colH [colD [ sortcolH ] ] ] ]

Запускает текущий буфер запроса (например, \g ) и отображает результаты в кросс-таблице. Запрос должен возвращать не менее трех столбцов. Выходной столбец, указанный colV, преобразуется в вертикальный заголовок, а выходной столбец, указанный colH, преобразуется в горизонтальный заголовок. colD определяет выходной столбец для отображения в сетке. sortcolH определяет необязательный столбец сортировки для горизонтального заголовка.

Спецификация каждого столбца может быть номером столбца (начиная с 1) или именем столбца. Имена столбцов подчиняются обычным правилам SQL по заключению в кавычки и регистру. Если опущено, colV берется как столбец 1, а colH — как столбец 2. colH должен отличаться от colV. Если colD не указан, в результате запроса должно быть ровно три столбца, а столбец, который не является ни colV, ни colH, обрабатывается как colD.

Крайний левый вертикальный заголовок содержит значения, найденные в colV, в том же порядке, что и в результатах запроса, но с удаленными дубликатами.

Горизонтальный заголовок, показанный в качестве первой строки, содержит значения, найденные в столбце colH, с удаленными дубликатами. По умолчанию они отображаются в том же порядке, что и в результатах запроса. Однако если задан необязательный аргумент sortcolH, он идентифицирует столбец, значения которого должны быть целыми числами, а значения colH отображаются в горизонтальном заголовке, отсортированном по соответствующим значениям sortcolH.

В сетке кросс-таблицы , для каждого отдельного значения x colH и каждого отдельного значения y colV содержится в ячейке на пересечении (x, y) значения столбца colD в строке результаты запроса, для которого значение colH равно X, а значение colV равно y. Если такой строки не существует, ячейка пуста. Если имеется несколько строк этого типа, сообщается об ошибке.

Для каждого отношения (таблицы, представления, материализованного представления, индекса, последовательности или внешней таблицы) или составного типа, соответствующего шаблону, возвращаются все столбцы. , его типы, табличное пространство (если не по умолчанию) и любые специальные атрибуты, такие как NOT NULL или значения по умолчанию. Также отображаются связанные индексы, ограничения, правила и триггеры. Для внешних таблиц также отображается связанный внешний сервер. («Шаблон сопоставления» определен в разделе «Шаблоны» ниже.)

Для некоторых типов отношений \d отображает дополнительную информацию для каждого столбца: значения столбцов для последовательностей, индексированные выражения для индексов и внешний контейнер данных. параметры для внешних таблиц.

Форма команды \d+ идентична, за исключением того, что отображается больше информации: отображаются комментарии, связанные со столбцами таблицы, а также наличие OID в таблице, определение представления, если связь представление, параметр удостоверения реплики, отличный от значения по умолчанию, и имя метода доступа, если у отношения есть метод доступа.

По умолчанию только объекты, созданные пользователем; укажите шаблон или модификатор S для включения системных объектов.

Если \d используется без аргумента шаблона, он эквивалентен \dtvmsE, в котором перечислены все видимые таблицы, представления, материализованные представления, последовательности и сторонние таблицы. . Это чисто мера удобства.

Список функций агрегирования вместе с типом возвращаемого значения и типами данных, с которыми они работают. Если указан шаблон, будут отображаться только агрегаты, имена которых соответствуют шаблону. По умолчанию отображаются только созданные пользователем объекты; укажите шаблон или модификатор S для включения системных объектов.

Перечисляет методы объекта доступа. Если указан шаблон, отображаются только объекты доступа, имена которых соответствуют шаблону. Если + добавляется к имени команды, каждый метод доступа отображается вместе с соответствующей функцией драйвера и описанием.

Список классов операторов (см. Раздел 38.16.1). Если указан шаблон-метода-аксессора, перечисляются только классы операторов, связанные с методами объекта-аксессора, имена которых соответствуют этому шаблону. Если указан шаблон типа ввода, перечисляются только классы операторов, связанные с типами ввода, имена которых соответствуют заданному шаблону. Если к имени команды добавляется +, каждый класс операторов отображается вместе с соответствующим семейством операторов и владельцем.

Список семейств операторов (см. Раздел 38.16.5). Если указан шаблон метода средства доступа, перечисляются только семейства операторов, связанные с методами средства доступа. подход, имена которого соответствуют этому шаблону. Если указан шаблон ввода-типа, перечисляются только семейства операторов, связанные с типами ввода, чьи имена соответствуют заданному шаблону. Если к имени команды добавляется +, каждое семейство операторов отображается вместе с его владельцем.

Список операторов, связанных с семействами операторы (см. Раздел 38.16.2). Если указан шаблон метода доступа, перечисляются только члены семейств операторов, связанных с методами доступа, имена которых соответствуют шаблону. Если указан шаблон семейства операторов, в списке отображаются только те члены семейства операторов, имена которых соответствуют шаблону. Если к имени команды добавлен +, каждый оператор перечисляется вместе с его семейством операторов сортировки (если это оператор сортировки).

Перечисляет вспомогательные функции, связанные с семействами операторов (см. Раздел 38.16.3). Если указан шаблон метода доступа, перечисляются только функции в семействах операторов, связанных с методами доступа, имена которых соответствуют шаблону. Если указан шаблон семейства операторов, перечисляются только функции в семействах операторов, имена которых соответствуют шаблону. Добавление + к имени команды покажет функции в деталях с их фактическими списками параметров.

Список табличных пространств. Если указан шаблон, отображаются только те табличные пространства, имена которых соответствуют шаблону. Если к имени команды добавлен +, каждое табличное пространство отображается со связанными параметрами, размером диска, разрешениями и описанием.

Перечисляет преобразования между кодировками наборов символов. Если указан шаблон, перечисляются только передачи, имена которых соответствуют шаблону. По умолчанию отображаются только созданные пользователем объекты; предоставить шаблон или модификатор S для включения системных объектов. Если добавить к имени команды +, каждый объект указан с соответствующим описанием.

Список типов преобразования. Если указан шаблон, отображаются только те преобразования, исходный или конечный тип которых соответствует шаблону. Если к имени команды добавляется +, каждый объект отображается вместе с соответствующим описанием

Отображает описания типа ограничения, класса оператора, семейства операторов, правил и объектов-триггеров. Все остальные комментарии можно отобразить с помощью соответствующих команд обратной косой черты для этих типов объектов

\dd отобразит описания объектов, соответствующих шаблону, или видимых объектов соответствующего типа, если тип не указан. Но в любом случае перечислены только объекты, которые имеют описание. По умолчанию отображаются только созданные пользователем объекты; укажите шаблон или модификатор S для включения системных объектов.

Описания объектов могут быть созданы с помощью оператора COMMENT SQL.

Отображает список доменов. Если указан шаблон, будут отображаться только домены, имена которых соответствуют шаблону. По умолчанию отображаются только созданные пользователем объекты; предоставить шаблон или модификатор S для включения системных объектов. Добавление + к имени команды перечисляет каждый объект со связанным описанием и разрешениями.

Перечисляет настройки разрешений доступа по умолчанию. Запись отображается для каждой роли (и, возможно, схемы), для которой параметры разрешений по умолчанию были изменены по сравнению со встроенными значениями по умолчанию. Если указан шаблон, отображаются только элементы, имя роли которых указано в списке. или имя схемы соответствует шаблону.

Оператор ALTER DEFAULT PRIVILEGES используется для установки привилегий доступа по умолчанию. Значение прав просмотра объясняется в разделе 5.7.

В этой группе команд буквы E, i, m, s, tav означают внешнюю таблицу, индекс, материализованное представление, последовательность, таблицу и представление соответственно. . Вы можете ввести любую или все эти буквы в любом порядке, чтобы получить список объектов этих типов. Например, \dti перечисляет таблицы и индексы. если + добавлен к имени команды, каждый объект перечисляется с его состоянием сохранения (постоянный, временный или незарегистрированный), физическим размером на диске и соответствующим описанием, если это необходимо. Если указан шаблон, перечисляются только объекты, имена которых соответствуют шаблону. По умолчанию отображаются только созданные пользователем объекты; введите шаблон или модификатор S, чтобы включить системные объекты.

Список внешних серверов (мнемоника: «внешние серверы»). Если указан шаблон, в списке отображаются только те серверы, имя которых соответствует шаблону. Используйте форму \des+ для отображения полного описания каждого сервера, включая права доступа, тип, версию, параметры и описание сервера.

Список внешних таблиц (мнемоника: «внешние таблицы»). Если указан шаблон, перечисляются только те элементы, имя таблицы или схемы которых соответствует шаблону. Если используется форма \det+, также отображаются общие параметры и описание внешней таблицы.

Выводит отображение пользователя (мнемоника: «внешние пользователи»). Если указан шаблон, отображаются только сопоставления, чьи имена пользователей соответствуют шаблону. Если используется форма \deu+, отображается дополнительная информация о каждом сопоставлении.

Внимание!

\deu+ может также отображать имя пользователя и пароль удаленного пользователя, поэтому следует раскрыть эти .

Отображает список внешних оболочек данных (мнемоника: «внешние оболочки»). Если указан шаблон, перечисляются только держатели внешних данных, имена которых соответствуют шаблону. Если используется форма \dew+, также отображаются права доступа, параметры и описание внешнего держателя данных.

Перечисляет функции вместе с их типами данных результатов, типами функций и аргументами, которые классифицируются как » agg» (совокупность), «обычный», «процедура», «триггер» или «окно». Чтобы отобразить только функции определенных типов, добавьте к команде соответствующие буквы , n , p , t или w . Если указан шаблон, отображаются только функции, имена которых соответствуют шаблону. Другие аргументы — это шаблоны имен типов, которые сравниваются с именами типов первого, второго и т. д. аргументов функции. (Функции сопоставления могут принимать больше аргументов, чем вы укажете. Чтобы избежать этого, напишите тире — в качестве последнего аргумента_шаблона.) По умолчанию отображаются только объекты, созданные пользователем; предоставить шаблон или модификатор S для включения системных объектов. Если используется форма \df+, отображается дополнительная информация о каждой функции, включая волатильность, параллельную безопасность, владелец, классификация безопасности, права доступа, язык, исходный код и описание.

Список конфигураций текстового поиска. . Если шаблон указан, только конфигурации, имена которых соответствуют шаблону. Используйте форму \dF+ для отображения полного описания каждой конфигурации, включая базовый анализатор текстового поиска и список словарей для каждого типа токена анализатора.

Список словарей текстового поиска. Если указан шаблон, будут отображаться только словари, имена которых соответствуют шаблону. Если используется форма \dFd+, отображается дополнительная информация о каждом выбранном словаре, включая базовый шаблон текстового поиска и значения параметров.

Отображает список парсеров текстового поиска. Если шаблон указан, будут отображаться только парсеры, имена которых соответствуют шаблону. Используйте форму \dFp+ для отображения полного описания каждого парсера, включая основные функции и список распознаваемых типов маркеров.

Показать список шаблонов текстового поиска. Если указан шаблон, будут отображаться только те шаблоны, имена которых соответствуют шаблону. Если используется форма \dFt+, отображается дополнительная информация о каждом шаблоне, включая имена базовых функций.

Список ролей базы данных. (Поскольку понятия «пользователи» и «группы» были объединены в «роли», эта команда теперь эквивалентна \du). По умолчанию отображаются только роли, созданные пользователем; укажите модификатор S, чтобы включить системные функции. Если шаблон указан, только те роли, имена соответствуют образцу. Если используется форма \dg+, отображается дополнительная информация о каждой роли; в настоящее время он добавляет комментарий для каждой роли.

Это псевдоним для \lo_list , который отображает список больших объектов.

Список процедурных языков. Если указан шаблон, перечислены только языки, названия которых соответствуют шаблону. По умолчанию отображаются только созданные пользователем языки; поставьте переключатель S, чтобы включить системные объекты. Если + добавить к имени команды, каждый язык будет указан со своим обработчиком вызова, валидатором, правами доступа и тем, является ли он системным объектом.

Список схем (пространств имен). Если указан шаблон, перечисляются только схемы, имена которых соответствуют шаблону. По умолчанию отображаются только созданные пользователем объекты; предоставить шаблон или модификатор S для включения системных объектов. Добавление + к имени команды перечисляет каждый объект с соответствующими разрешениями и описанием, если применимо.

Перечисляет операторы с их операндами и типами результатов. Если указан шаблон, перечисляются только операторы, имена которых соответствуют шаблону. Если указан arg_pattern, перечисляются только префиксные операторы, истинное имя типа аргумента которых соответствует заданному шаблону. Если указаны два шаблона arg_pattern, будут перечислены только бинарные операторы, имена типов аргументов которых соответствуют этим шаблонам. (В качестве альтернативы введите — для неиспользуемого аргумента унарного оператора.) Они отображаются по умолчанию. только созданные пользователем объекты; предоставить шаблон или модификатор S для включения системных объектов. Добавление + к имени команды отображает дополнительную информацию о каждом операторе, в настоящее время это просто имя базовой функции.

Список сопоставлений. Если указан шаблон, перечисляются только сопоставления, имена которых соответствуют шаблону. По умолчанию отображаются только созданные пользователем объекты; предоставить шаблон или модификатор S для включения системных объектов. Если к имени команды добавлен +, каждая сортировка отображается со своим описанием, если оно есть. Обратите внимание, что отображаются только параметры сортировки, применимые к текущей кодировке базы данных, поэтому результаты могут различаться в зависимости от базы данных в одной и той же установке.

Список таблиц, представлений и последовательностей с соответствующими правами доступа. Если указан шаблон, отображаются только таблицы, представления и последовательности, имена которых соответствуют шаблону.

Команды GRANT и REVOKE используются для установки разрешений на доступ. Значение отображения разрешений объясняется в Разделе 5.7.

Перечисляет разделенные отношения. Если указан шаблон, перечисляются только элементы, имя которых соответствует шаблону. К команде можно добавить модификаторы t (таблицы) и ai (индексы), чтобы отфильтровать тип отображаемых отношений. По умолчанию перечислены секционированные таблицы и индексы.

Если используется модификатор n («nested») или указан шаблон, включаются некорневые секционированные отношения и столбец, показывающий родительские элементы каждой секционированной таблицы. отношения .

Добавление + к имени команды также отображает сумму размеров разделов для каждого отношения вместе с описанием отношения. Если n сочетается с + , отображаются два размера: один включает общий размер непосредственно присоединенных конечных разделов, а другой показывает общий размер всех разделов, включая косвенно присоединенные подразделы.

Перечисление определенной конфигурации настройки . Эти параметры могут быть специфичными для роли, конкретной базы данных или и того, и другого. role-pattern и database-pattern используются для выбора определенных ролей и баз данных для перечисления. Если этот параметр опущен или указан *, отображаются все параметры, включая параметры, не относящиеся к роли или базе данных.

Операторы ALTER ROLE и ALTER DATABASE используются для определения параметров конфигурации для отдельных ролей. и по базе данных.

Отображает список публикаций репликации. Если указан шаблон, в списке отображаются только сообщения, имена которых соответствуют шаблону. Добавление + к имени команды также отображает таблицы, связанные с каждой публикацией.

Отображает список подписок на репликацию. Если указан шаблон, отображаются только подписки, имена которых соответствуют шаблону. Добавьте + к имени команды, чтобы отобразить дополнительные свойства для подписок.

Определяет типы данных. Если указан шаблон, перечисляются только те типы, имена которых соответствуют шаблону. Если + добавляется к имени команды, каждый тип указывается с его внутренним именем и размером, допустимыми значениями, если это тип перечисления, и соответствующими разрешениями. По умолчанию отображаются только созданные пользователем объекты; введите шаблон или модификатор S, чтобы включить системные объекты.

Список ролей базы данных. (Поскольку понятия «пользователи» и «группы» были объединены в «роли», эта команда теперь эквивалентна \dg). По умолчанию отображаются только роли, созданные пользователем; предоставьте модификатор S для включения системных функций. Если указан шаблон, перечислены только роли, имена которых соответствуют шаблону. Если используется форма \du+, отображается дополнительная информация о каждой роли; в настоящее время он добавляет комментарий для каждой роли.

Список установленных расширений. Если указан шаблон, перечисляются только те расширения, имена которых соответствуют шаблону. Если используется форма \dx+, перечисляются все объекты, принадлежащие каждому соответствующему расширению.

Отображает расширенную статистику. Если указан шаблон, отображаются только расширенные статистические данные, имена которых соответствуют шаблону.

Статус каждого типа расширенного статистического параметра отображается в столбце с названием его типа статистического параметра (например, Ndistinct). Определено означает, что это требовалось при создании статистики, а NULL означает, что это не требовалось. Вы можете использовать pg_stats_ext, если хотите узнать, был ли выполнен АНАЛИЗ и доступна ли статистика для планировщика.

Список триггеров событий. Если указан шаблон, перечисляются только те триггеры событий, имена которых соответствуют шаблону. Если + добавляется к имени команды, каждый объект отображается со своим по соответствующему описанию.

\e или \edit [имя_файла] [номер_строки]

Если указано имя файла, файл редактируется ; после выхода из редактора содержимое файла копируется в текущий буфер запроса. Если имя файла не указано, текущий буфер запроса копируется во временный файл, который затем модифицируется таким же образом. Или, если текущий буфер запроса пуст, последний выполненный запрос копируется во временный файл и модифицируется.

Если вы редактируете файл или предыдущий запрос и выходите из редактора без изменения файла, буфер запроса очищается. В противном случае новое содержимое буфера запроса обрабатывается в соответствии с обычными правилами psql, рассматривая весь буфер как одну строку. Любой полный запрос выполняется немедленно; то есть, если буфер запроса содержит точку с запятой или заканчивается точкой с запятой, все до этой точки выполняется и удаляется из буфера запроса. То, что осталось в буфере запроса, повторно отображается. Введите точку с запятой или \g для отправки или \r для отмены путем очистки буфера запроса.

Обработка буфера как одной строки в основном влияет на метакоманды: все, что находится в буфере после метакоманды, будет рассматриваться как аргумент ( s) метакоманды, даже если он занимает несколько строк. (Поэтому вы не можете создавать сценарии, использующие метакоманды таким образом. Используйте для этого \i.)

Если указан номер строки, psql помещает курсор в указанную строку файла или буфер запроса. Обратите внимание, что если задан один целочисленный аргумент, psql предполагает, что это номер строки, а не имя файла.

См. раздел Среда ниже, чтобы узнать, как сконфигурировать и настроить редактор.

Перечисляет оцененные аргументы для стандартного вывода, разделенные пробелами, за которыми следует новая строка. Это может быть полезно для вставки информации в вывод скрипта. Например:

Если первый аргумент -n не заключен в кавычки, последняя новая строка не будет записана (как и первый аргумент).

Если вы используете команду \o для перенаправления результат вашего запроса, вы можете использовать пространство этой команды \qecho. См. также \warn .

Эта команда получает и изменяет определение именованной функции или процедуры, например команды CREATE OR REPLACE FUNCTION или CREATE OR REPLACE PROCEDURE. Редактирование выполняется так же, как с \edit . Если вы выйдете из редактора без сохранения, листинг будет удален. Если вы сохраните и выйдете из редактора, обновленная команда будет запущена немедленно, если вы добавите к ней точку с запятой. В противном случае он будет отображаться снова; введите точку с запятой или \g для подтверждения или \r для отмены.

Целевая функция может быть указана именем или именем и только аргументами, например, foo(integer, text) . Если существует более одной функции с одинаковым именем, необходимо указать типы аргументов.

Если функция не указана, для редактирования будет отображаться пустой шаблон CREATE FUNCTION.

Если строка указан номер, psql помещает курсор на указанную строку тела функции. (Обратите внимание, что тело функции обычно не начинается с первой строки файла.)

В отличие от большинства других метакоманд, вся остальная строка всегда воспринимается как аргумент(ы) \ ef, а аргументы не являются интерполированными или расширенными кавычками.

См. раздел «Среда» ниже, чтобы узнать, как сконфигурировать и настроить редактор.

Устанавливает кодировку символов клиентского файла. Без аргументов эта команда отображает текущую кодировку.

Повторяет самое последнее сообщение об ошибке сервера с максимальной детализацией, как если бы для параметра VERBOSITY было установлено значение verbose, а для параметра SHOW_CONTEXT — значение всегда.

\ev [ имя_представления [ номер_строки ] ]

Эта команда загружает и изменяет определение именованного представления как команду CREATE OR REPLACE VIEW. Редактирование выполняется так же, как с \edit . Если вы выйдете из редактора без сохранения, листинг будет удален. Если вы сохраните и выйдете из редактора, обновленная команда будет запущена немедленно, если вы добавите к ней точку с запятой. В противном случае он будет отображаться снова; введите точку с запятой или \g для отправки или \r для отмены.

Читайте также:  Как можно открыть формат rar

Если представление не указано, отображается пустой шаблон CREATE VIEW для редактирования.

Если указан номер строки, psql помещает курсор в указанную строку определения представления.

В отличие от большинства других метакоманд, оставшаяся часть строки всегда используется как аргумент(ы) \ev , и ни интерполяция переменных, ни раскрытие обратных кавычек не выполняются для arguments.

Устанавливает разделитель полей для невыровненного вывода запроса. Значение по умолчанию — вертикальная черта ( Параметр изменяется так же, как параметр \pset без явного значения.

Если должно быть выполнено имя файла или оператор SQL. Например, чтобы создать индекс для каждого столбца my_table :

Сгенерированные запросы выполняются в том порядке, в котором возвращаются строки, и слева направо в каждой строке, если имеется более одного столбца, NULL поля игнорируются. Сгенерированные запросы буквально отправляются на сервер для обработки, поэтому они не могут быть метаоператорами psql или содержать ссылки на переменные psql. Если какой-либо отдельный запрос завершается ошибкой, выполнение оставшихся запросов продолжается, если не установлено значение ON_ERROR_STOP. Выполнение каждого запроса подлежит обработке ECHO. (Часто рекомендуется установить ECHO для всех запросов при использовании \gexec.) Доступны ведение журнала запросов, однопроходный режим, синхронизация и другие функции выполнения запросов. Также применяется к каждому сгенерированному запросу.

Если текущий буфер запросов пуст, последний отправленный запрос будет выполнен снова.

Отправляет текущий буфер запросов на сервер и сохраняет результат запроса в переменной psql (см. Переменные ниже). Выполняемый запрос должен возвращать ровно одну строку. Каждый столбец в строке хранится в отдельной переменной с тем же именем, что и столбец. Например:

Если вы укажете префикс, эта строка будет добавлена ​​перед именами столбцов в запросе, чтобы создать используемые имена переменных:

Если результат столбца равен NULL , соответствующий переменная не установлена ​​вместо был установлен.

Если запрос завершается неудачно или не возвращает строку, никакая переменная не изменяется.

Если текущий буфер запроса пуст, отображается последний отправленный запрос, и запрос вместо этого выполняется повторно. условный блок.

Команды \if и \elif считывают свои аргументы и оценивают их как логическое выражение. Если выражение оценивается как истинное, обработка продолжается в обычном режиме; в противном случае строки пропускаются до тех пор, пока не будет достигнуто соответствие \elif , \else или \endif . После успешного завершения проверки \if или \elif аргументы последующих операторов \elif в том же блоке не оцениваются, а считаются ложными. Строки, следующие за \else, обрабатываются только в том случае, если предыдущее совпадение \if или \elif не было успешным.

Аргумент-выражение команды \if или \elif подвергается переменной интерполяции и обратной косой черте, как и любой другой аргумент обратной косой черты. команда. Затем он вычисляет значение переменной опции включения/выключения. Поэтому допустимым значением является любое уникальное совпадение без учета регистра для одного из: true , false , 1 , 0 , on , off , yes , no . Например, t , T и tR будут считаться истинными .

Выражения, которые неправильно оцениваются как истинные или ложные, вызовут предупреждение и будут считаться ложными .

Пропущенные строки обычно анализируются для выявления запросов и операторы обратной косой черты, но запросы не отправляются на сервер, а неусловные операторы обратной косой черты ( \if , \elif , \else, \endif ) игнорируются. Условные операторы проверяются только на допустимую вложенность. Ссылки на переменные в пропущенных строках не расширяются, и расширение обратной косой черты не выполняется.

Все операторы обратной косой черты в данном условном блоке должны появляться в одном и том же исходном файле. Если EOF достигнут в основном входном файле или в файле \include -ed до того, как все локальные \if -блоки будут закрыты, psql выдаст ошибку.

Вот пример:

\ ir или \include_relative filename

Команда \ir похожа на команду \i, но различает относительные имена файлов. Обе команды ведут себя одинаково при запуске в интерактивном режиме. Однако при вызове из сценария \ir интерпретирует имена файлов относительно каталога, в котором они хранятся. найдет сценарий, а не текущий рабочий каталог.

Перечислите базы данных на сервере и укажите их имена, владельцев, кодировку набора символов и права доступа. Если указан шаблон, перечисляются только базы данных, имена которых соответствуют шаблону. Добавление + к имени команды также отображает размеры базы данных, табличные пространства по умолчанию и описания. (Информация о размере доступна только для баз данных, к которым может подключиться текущий пользователь.)

\lo_export filename loid

Используйте \lo_list, чтобы найти OID большого объекта.

Сохраняет файл в большом объекте PostgreSQL. Необязательно связывает данный комментарий с объектом. Пример:

Ответ указывает, что большой объект получил идентификатор объекта 152801, который можно использовать для доступа к вновь созданному большому объекту в будущем. Из соображений удобочитаемости рекомендуется всегда назначать удобочитаемый комментарий каждому объекту. И OID, и комментарии могут отображаться с помощью команды \lo_list.

Обратите внимание, что эта команда немного отличается от команды lo_import на стороне сервера тем, что она действует как локальный пользователь в локальной файловой системе, а не как пользователь сервера. и файловая система.

Список всех больших объектов PostgreSQL, хранящихся в настоящее время в базе данных. данные вместе с любыми комментариями по этому поводу.

Используйте \lo_list, чтобы узнать OID большого объекта.

Позаботьтесь о сохранении результатов будущих запросов в имя файла или передайте результаты в приглашение оболочки. Если аргумент не указан, выходные данные запроса сбрасываются до стандартного вывода.

Если аргумент начинается с, гарантирует, что новый пароль не будет отображаться в виде обычного текста в истории команд, журнале сервера или где-либо еще.

\prompt [текст] имя

Запрашивает у пользователя текст, связанный с именем переменной. Можно ввести необязательную строку запроса text . (Заключите текст в одинарные кавычки для подсказок, состоящих из нескольких слов.)

По умолчанию \prompt использует терминал для ввода и вывода. Однако, если использовался переключатель командной строки -f, \prompt использует стандартный ввод и стандартный вывод.

\pset [параметр [значение] ]

Эта команда устанавливает параметры, влияющие на вывод таблицы результатов запроса. option указывает, какой параметр должен быть настроен. Семантика значения зависит от выбранного параметра. Для некоторых параметров пропуск значения приведет к включению или отключению параметра, как описано для конкретного параметра. Если такое поведение не указано, то при пропуске значения будут отображаться только текущие настройки.

\pset без аргументов отобразит текущее состояние всех параметров печати.

Устанавливаемое значение параметры печати:

Устанавливает целевую ширину для обернутого формата, а также ограничение ширины, чтобы определить, достаточно ли широк вывод для использования пейджера или переключения в книжную ориентацию в режиме автоматического растяжения. Ноль (по умолчанию) приводит к тому, что целевая ширина управляется переменной среды COLUMNS или обнаруженной шириной экрана, если COLUMNS не задана. Если столбцы пусты, формат обертки влияет только на отображение вывода. Если столбцы не равны нулю, выходной файл и канал также будут соответствовать этой ширине.

Если указано значение, оно должно быть включено или выключено, что включает или отключает расширенный режим или автоматический режим. Если значение опущено, команда переключается между настройками включения и выключения. Когда расширенный режим включен, результаты запроса отображаются в двух столбцах, с именем столбца слева и данными справа. Этот режим полезен, если данные не умещаются на экране в обычном «ландшафтном» режиме. При автоматической настройке всегда используется расширенный режим, когда вывод запроса имеет более одного столбца и шире экрана; в противном случае используется нормальный режим. Автоматическая настройка эффективна только в выровненных и упакованных форматах. В других форматах он всегда ведет себя так, как если бы расширенный режим был отключен.

Указывает разделитель полей для использования в невыровненном формате вывода. Таким образом, вы можете создать, например, вывод, разделенный табуляцией, который могут предпочесть другие программы. Чтобы установить табуляцию в качестве разделителя полей, введите \psetfieldsep ‘\t’. Разделителем полей по умолчанию является ‘wrap . Допускаются отдельные сокращения.

встроенный формат хорошо отформатирован, удобочитаем, стандартный текстовый вывод; это значение по умолчанию. Формат

без выравнивания записывает все столбцы в одну строку, разделенную текущим активным разделителем полей. Это полезно для создания вывода, который может быть предназначен для чтения другими программами, например, в формате, разделенном табуляцией или запятыми. Однако не уделяется особого внимания символу-разделителю полей, если он появляется в значении столбца; поэтому формат CSV может быть более подходящим для этих целей.

Формат

csv записывает значения столбцов, разделенные запятыми, с использованием правил цитирования, описанных в RFC 4180. Этот вывод совместим с командой CSV COPY из сервер. Если tuples_only не включен, создается строка заголовка с именами столбцов. Верхние и нижние колонтитулы не печатаются. Каждая строка заканчивается системно-зависимым символом конца строки, который обычно представляет собой одну новую строку ( \n ) для Unix-подобных систем или последовательность возврата каретки и новой строки ( \r\n ) для Microsoft Windows. Символы-разделители полей, отличные от запятых, можно выбрать с помощью \pset csv_fieldsep .

Формат переноса встроен, но широкие значения данных переносятся между строками, чтобы выходные данные соответствовали ширине столбца поля. Целевая ширина определяется, как описано в выборе столбца. Обратите внимание, что psql не пытается переносить заголовки столбцов; таким образом, обернутый формат ведет себя так же, как встроенный, если общая ширина, необходимая для заголовков столбцов, превышает целевую.

Форматы asciidoc, html, latex, latex-longtable и troff-ms представляют таблицы, предназначенные для включаться в документы с использованием соответствующего языка разметки. Это не полные документы! Это может не понадобиться в HTML, но в LaTeX у вас должен быть полный контейнер документа. Формат латекса использует среду электронных таблиц LaTeX. Для формата latex-longtable требуются пакеты LaTeX longtable и booktabs.

Устанавливает стиль рисования линии границы на один из ascii, old-ascii или unicode. Допускаются уникальные сокращения. (Это означало бы, что одной буквы достаточно). По умолчанию используется ascii. Этот параметр влияет только на встроенные и упакованные форматы вывода.

Стиль Unicode использует символы Unicode для фреймов рисования. Новые строки в данных отображаются с символом возврата каретки справа. Когда данные переходят из одной строки в другую без символа новой строки, символ многоточия появляется на правом краю первой строки и снова на левом краю следующей строки. line.

Когда Если параметр границы больше нуля, параметр стиля линии также определяет символы, которыми рисуются линии границы. Простые символы ASCII работают везде, но символы Unicode лучше смотрятся на экранах, которые их распознают.

Задает печать строки вместо нулевого значения. По умолчанию ничего не печатается, что можно легко принять за пустую строку. Например, вы можете предпочесть \pset null ‘(null)’ .

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

Управляет использованием пейджера для запросов и вывода справки psql. Если установлена ​​переменная среды PSQL_PAGER или PAGER, вывод направляется в указанную программу. В противном случае используйте программу по умолчанию, зависящую от платформы (например, больше).

Когда опция пейджера отключена, программа пейджера не используется. Когда опция пейджера включена, пейджер используется там, где это уместно, то есть когда вывод идет на терминал и не помещается на экране. Опция пейджера также может быть установлена ​​на всегда, что приводит к тому, что пейджер будет использоваться для всех выходных данных терминала, независимо от того, помещается ли он на экране. \pset pager без значения включает и выключает использование пейджера.

Если для pager_min_lines задано число, превышающее высоту страницы, программа пейджера не будет вызываться, если здесь по крайней мере страниц будет не так много. отображать. Значение по умолчанию: 0.

Указывает разделитель записей (линию), который следует использовать в невыровненном формате вывода. По умолчанию используется символ новой строки.

Устанавливает разделитель записей для использования в выходном формате, не выровненном по нулю.

В формате latex-longtable управляет шириной, пропорциональной каждому столбцу, содержащему выровненный по левому краю тип данных. указывается как пустой список значений, например ‘0,2 0,2 ​​0,6’ . В неуказанных выходных столбцах используется последнее заданное значение.

Устанавливает имя таблицы для каждой таблицы, которая впоследствии печатается. Это можно использовать для создания описательных выходных меток. Если значение не указано, заголовок не устанавливается.

только кортежи (или t )

Если значение указано, оно должно быть включено или выключено, что включает или отключает кортежи в соло режим. Если значение опущено, команда переключается между обычным выводом и выводом только кортежей. Обычный вывод включает дополнительную информацию, такую ​​как заголовки столбцов, заголовки и различные нижние колонтитулы. В режиме только для кортежей отображаются только фактические данные в таблице.

Устанавливает стиль отрисовки границы для стиля линии Unicode на одинарную или двойную.

Задает стиль отрисовки границы для Стиль линии Юникод. Стиль отрисовки столбца для стиля линии Unicode: одинарная или двойная.

Устанавливает стиль отрисовки заголовка для стиля линии Unicode: одинарная или двойная.

См. приведенные ниже примеры того, как эти разные форматы можно посмотреть.

Есть несколько команды быстрого доступа для \pset . См. \a , \C , \f , \H , \t , \T и \x .

Завершает работу psql. В файле скрипта он просто завершит выполнение этого скрипта.

Эта команда идентична команде \echo, за исключением того, что вывод будет записан в канал вывода запроса, заданный \ o .

Сбрасывает (очищает) буфер запросов.

Выводит историю командной строки psql в имя файла. Если имя файла опущено, история записывается на стандартный вывод (или на пейджер). Эта команда недоступна, если psql был создан без поддержки Readline.

Устанавливает имя переменной psql в значение или, если указано более одного значения, в конкатенацию всех из них. Если указан только один аргумент, переменной присваивается значение пустой строки. Чтобы сбросить переменную, используйте команду \unset.

\set без каких-либо аргументов отобразит имена и значения всех текущих установленных переменных psql.

Допустимые имена переменных могут содержать буквы, цифры и символы подчеркивания. Дополнительную информацию см. в разделе «Переменные» ниже. Имена переменных чувствительны к регистру.

Некоторые переменные уникальны тем, что они управляют поведением psql или автоматически устанавливаются в соответствии с состоянием соединения. Эти переменные описаны в разделе «Переменные» ниже.

Эта команда не связана с командой SQL SET.

Устанавливает имя переменной среды в значение или, если имя не указано, в значение, отключает переменную среды. Пример:

Этот оператор извлекает и отображает определение именованной функции или процедуры в форме оператора CREATE OR REPLACE FUNCTION или CREATE OR REPLACE PROCEDURE. Определение печатается в текущий выходной канал запроса, как установлено \o .

Целевая функция может быть типизирована только по имени или по имени и аргументам, например, foo(integer, text) . Если имеется несколько функций с одинаковым именем, необходимо указать типы аргументов.

Если + добавляется к имени команды, выходные строки нумеруются, при этом первой строкой тела функции является строка 1.

В отличие от большинства других метакоманд, оставшаяся часть строки всегда воспринимается как аргумент(ы) \sf, и к аргументам не применяются ни переменная интерполяции, ни раскрытие обратных кавычек.

Эта команда извлекает и отображает определение именованного представления в форме оператора CREATE OR REPLACE VIEW. Определение печатается в текущем канале вывода запроса, заданном \o .

Если к имени команды добавляется знак +, строки вывода нумеруются с 1.

В отличие от для большинства других мета-команд вся остальная строка всегда принимается как аргумент(ы) \sv, и для аргументов не выполняется интерполяция переменных или расширение обратных кавычек.

Переключает отображение заголовков имен выходных столбцов. и нижние колонтитулы с подсчетом строк. Эта команда эквивалентна команде \pset tuples_only и предназначена для удобства.

Используйте этот параметр, чтобы включить или выключить отображение того, сколько времени занимает выполнение каждого оператора SQL. Включает и выключает дисплей без параметров. Отображение в миллисекундах; интервалы продолжительностью более 1 секунды также отображаются в формате «минута:секунда», с добавлением полей часа и дня, если это необходимо.

Отменить (удалить) имя переменной psql.

Большинство переменных, управляющих поведением psql, не быть переопределен; вместо этого команда \unset интерпретируется как установка их значений по умолчанию. См. Переменные ниже.

\w или \write filename
\w или \write buffer to filename или путем преобразования в командную строку оболочки. Если текущий буфер запросов пуст, записывается последний выполненный запрос.

Если аргумент начинается со всего остального в строке, он всегда используется как аргумент(ы) для \! и для аргументов не выполняется ни интерполяция переменных, ни раскрытие обратных кавычек. Оставшаяся часть строки просто дословно передается оболочке.

Отображает справочную информацию. Необязательный параметр темы (по умолчанию — commands ) выбирает, какая часть psql будет объяснена: commands описывает команды psql, обратная косая черта; options описывает параметры командной строки, которые можно передать в psql; и переменные будут отображать справку по переменным конфигурации psql.

Обратная косая черта-слэш не является метакомандой, как предыдущие команды; скорее, это просто вызывает добавление точки с запятой запроса в буфер без дальнейшей обработки.

Обычно psql отправляет оператор SQL на сервер, как только достигает последней точки с запятой оператора, даже если есть в текущей строке осталось больше элементов. Так, например, ввод

приведет к отправка всех трех операторов SQL по отдельности на сервер с отображением результатов каждого из них перед продолжением следующего оператора. Однако точка с запятой вводится как \; не начинает обработку команды, поэтому предыдущая и следующая команды объединяются и отправляются на сервер в одном запросе. Например,

приводит к тому, что все три оператора SQL отправляются на сервер в одном запросе, когда точка с запятой попадает без обратной косой черты. Сервер выполняет такой запрос как единую транзакцию, если только в цепочку не включены команды BEGIN/COMMIT для разбиения ее на несколько транзакций. (Подробнее о том, как сервер обрабатывает несколько строк запроса, см. Раздел 53.2.2.1.) psql выводит только последний результат запроса, полученный для каждого запроса; в этом примере, несмотря на то, что выполняются все три SELECT, psql выводит только 3 .

Шаблоны

Различные команды \d принимают параметр шаблона для указания имен объектов для отображения. В простейшем случае шаблон — это просто точное имя объекта. Символы в шаблоне обычно удваиваются до нижнего регистра, когда они совпадают с именами SQL; например, \dt FOO отобразит таблицу с именем foo. Как и в случае с именами SQL, размещение шаблона в кавычках предотвращает его использование в нижнем регистре. Если вам нужно включить в шаблон фактический символ двойной кавычки, запишите его как пару двойных кавычек внутри последовательности двойных кавычек; опять же, это соответствует правилам для идентификаторов в кавычках SQL. Например, \dt «FOO»»BAR» возвращает таблицу с именем FOO»BAR». (не foo»bar ). В отличие от обычных правил для имен SQL, вы можете заключать только двойные кавычки в часть шаблона, например, \dt FOO»FOO»BAR отобразит таблицу с именем fooFOObar .

Когда параметр шаблона полностью опущен, команды \d отобразят все объекты, видимые в текущем пути поиска схемы, что эквивалентно использованию * в качестве шаблона (объект считается видимым, если содержащая его схема находится в пути поиска схемы). путь поиска и путь поиска, предшествующий ему, не обнаружат никаких объектов того же типа и имени. Это эквивалентно объявлению объекта по имени без явного квалификатора схемы). Чтобы просмотреть все объекты в базе данных независимо от их видимости, используйте * .* в качестве шаблона.

Внутри шаблона * соответствует любой последовательности символов (даже отсутствию символов), а ? соответствует любому одиночному символу (обозначение сравнимо с шаблонами файлов оболочки Unix. Например, \dt int* возвращает таблицы, имена которых начинаются с int, но между double в кавычках * а также ? они теряют эти специальные значения и просто комбинируются буквально.

Шаблон отношения, содержащий точку ( . ), интерпретируется как шаблон имени схемы, за которым следует шаблон имени объекта. Например, \dt foo*.*bar* отобразит все таблицы, имя таблицы которых содержит bar, которые находятся в схемах, имя схемы которых начинается с foo . Когда точка не появляется, шаблон соответствует только тем объектам, которые видны в текущем пути поиска схемы. Снова период в парном разряде кавычки теряют свое особое значение и реагируют буквально. Шаблон отношения, содержащий двоеточие ( . ), интерпретируется как имя базы данных, за которым следует шаблон имени схемы, за которым следует шаблон имени объекта. Часть имени базы данных не будет рассматриваться как шаблон и должна соответствовать имени текущей подключенной базы данных; в противном случае будет сгенерирована ошибка.

Шаблон схемы, содержащий точку ( . ), интерпретируется как имя базы данных, за которым следует шаблон имени схемы. Например, \dn mydb.*foo* отобразит все схемы, имя схемы которых содержит foo . Часть имени базы данных не будет считаться шаблоном и должна соответствовать имени базы данных. в настоящее время подключенная база данных; в противном случае будет сгенерирована ошибка.

Опытные пользователи могут использовать нотации регулярных выражений в качестве классов символов, например [0-9], для присвоения любой цифры. Все специальные символы регулярных выражений работают, как описано в Разделе 9.7.3, за исключением . который используется как разделитель, как указано выше, * который переводится в нотацию регулярного выражения .* , ? что переводится как , и $, что соответствует буквально. Если вам нужно, вы можете эмулировать эти шаблоны, набрав ? из . , ( R+ состоит из букв (включая нелатинские буквы), цифр и знаков подчеркивания.

Чтобы установить переменную, используйте метакоманду psql \set. Например,

устанавливает переменную foo в строке значения. Чтобы получить содержимое переменной, добавьте двоеточие перед именем, например:

Это работает как в обычных операторах SQL, так и в мета-операторах, подробнее см. Интерполяция SQL

Если вы вызываете \set без второго аргумента, переменной присваивается значение пустой строки. Чтобы сбросить (т.е. удалить) переменную, используйте команду \unset. Чтобы отобразить значения всех переменных, вызовите \set без аргументов.

Аргументы для \set подчиняются тем же правилам подстановки, что и другие команды, поэтому вы можете делать интересные ссылки, такие как \set :foo ‘ что-то» и получить «мягкие ссылки» или «переменные переменные» известности Perl или PHP. К сожалению (или к счастью?) с этими конструкциями нельзя сделать ничего полезного. С другой стороны, \set bar :foo — вполне допустимый способ копирования переменной.

Читайте также:  Shadowcraft как открыть кейс

psql обрабатывает некоторые из этих переменных особым образом. Они представляют собой определенные настройки параметров, которые можно изменить во время выполнения, изменив значение переменной, или, в некоторых случаях, представляют изменяемое состояние psql. По соглашению все имена переменных специального назначения состоят из прописных букв ASCII (и, возможно, цифр и символов подчеркивания). Чтобы обеспечить максимальную совместимость в будущем, избегайте использования таких имен переменных в собственных целях.

Переменные, управляющие поведением psql, обычно нельзя переопределять или устанавливать в недопустимые значения. Команда \unset разрешена, но интерпретируется как установка переменной в значение по умолчанию. Оператор \set без второго аргумента интерпретируется как установка переменной в on для управляющих переменных, которые принимают это значение, и отклоняется для других. Кроме того, контроль переменные, которые принимают значения on и off, также будут принимать другие распространенные логические варианты написания, такие как true и false .

Специально обрабатываемые переменные:

Когда on (по умолчанию), каждая команда является SQL автоматически подтверждено успешно после завершения. Чтобы отложить фиксацию в этом режиме, вы должны выполнить оператор SQL BEGIN или START TRANSACTION. При отключении или отключении операторы SQL не фиксируются до тех пор, пока вы явно не выполните оператор COMMIT или END. Режим автоматической фиксации работает, давая вам неявный BEGIN непосредственно перед тем, как любой оператор, который еще не находится в блоке транзакции и сам не является оператором BEGIN или другим оператором управления транзакцией, или оператором, который не является, может быть выполнен в блоке транзакции. (например, VOID).

В режиме автоматической фиксации вы должны явно отказаться от любой неудавшейся транзакции, указав ABORT или ROLLBACK. Также обратите внимание, что если вы выйдете из сеанса без фиксации, ваша работа будет потеряна.

Режим автоматической активации является традиционным поведением PostgreSQL, но автоматическая активация ближе к спецификации SQL. Если вы предпочитаете отключить его автоматически, вы можете установить его в общесистемном файле psqlrc или su

Определяет, какой регистр используется при заполнении ключевого слова SQL. Если установлено значение «ниже» или «выше», все слово будет в нижнем или верхнем регистре. Если установлено значение Keep-lower или Keep-Upper (по умолчанию), все слово будет в случае уже введенного слова, но слово завершено без ввода чего-либо, будет строчными или прописными буквами.

Имя базы данных, к которой вы в настоящее время подключены. Это устанавливается каждый раз, когда вы подключаетесь к базе данных (включая запуск программы), но его можно изменить или отключить.

Если установлено значение all , все непустые строки ввода будут выводиться на стандартный вывод при чтении. . (Это не относится к строкам, которые читаются в интерактивном режиме.) Чтобы выбрать это поведение при запуске программы, используйте ключ -a. Если заданы запросы, psql будет печатать каждый запрос в стандартный вывод по мере его отправки на сервер. Переключатель для выбора этого поведения -e . Если установлено значение errors , только неудачные запросы будут отображаться как стандартная ошибка. Переключатель для этого поведения -b . Если установлено значение none (по умолчанию), запросы отображаться не будут.

Если эта переменная включена и команда обратной косой черты запрашивает базу данных, она будет отображаться как первый запрос. Эта функция помогает вам изучить внутренности PostgreSQL и предоставляет аналогичную функциональность в ваших собственных программах. (Чтобы выбрать это поведение при запуске программы, используйте переключатель -E.) Если вы установите для этой переменной значение noexec , запросы будут только отображаться, но фактически не будут отправляться на сервер и выполняться. По умолчанию отключено.

Текущая кодировка набора символов клиента. Это устанавливается каждый раз, когда вы подключаетесь к базе данных (включая запуск программы) и когда вы меняете кодировку с помощью \encoding , но ее можно изменить или отключить.

true, если последний SQL-запрос не удался, false, если он был успешным. См. также SQLSTATE .

Если для этой переменной задано целочисленное значение больше нуля, результаты запросов SELECT будут извлекаться и отображаться в группах из такого количества строк, вместо поведения по умолчанию, при котором выполняется сбор всего результата. установлен. прежде чем отображать его. Поэтому используется только ограниченный объем памяти, независимо от размера результирующего набора. Когда эта функция включена, обычно используются настройки от 100 до 1000. Обратите внимание, что использование этой функции может привести к сбою запроса после того, как будет возвращено несколько строк.

Хотя вы можете использовать любой выходной формат с этой функцией. , встроенный формат по умолчанию имеет тенденцию выглядеть плохо, поскольку каждая группа строк FETCH_COUNT будет форматироваться отдельно, что приведет к разной ширине столбцов в группах строк. Другие выходные форматы работают лучше.

Если для этой переменной установлено значение true , сведения о методе доступа к таблице не отображаются. Это особенно полезно для регрессионного тестирования.

Если для этой переменной задано значение true , сведения о методе сжатия столбцов не отображаются. Это особенно полезно для регрессионного тестирования.

Если для этой переменной установлено значение ignorespace , строки, начинающиеся с пробела, не записываются в список истории. Если установлено значение ignoreups , строки, соответствующие предыдущей строке истории, не будут вводиться. Значение ignoreboth объединяет обе опции. Если установлено значение «Нет» (по умолчанию), все строки, загруженные в интерактивном режиме, сохраняются в списке истории.

Эта функция была явным плагиатом из Bash.

Имя файла будет использоваться для сохранения списка истории. Если не задано, имя файла берется из переменной окружения PSQL_HISTORY. Если и это не задано, по умолчанию используется

/.psql_history или %APPDATA%\postgresql\psql_history в Windows. Например, ввод:

/.psqlrc приводит к тому, что psql ведет отдельную историю для каждой базы данных.

Эта функция была бессовестно заимствована из Bash.

Максимальное количество команд для сохранить в истории команд (по умолчанию 500). Если установлено отрицательное значение, ограничение не применяется.

Эта функция была беззастенчиво скопирована из Bash.

Хост сервера базы данных, к которому вы в данный момент подключены. Он устанавливается каждый раз, когда вы подключаетесь к базе данных (включая запуск программы), но его можно изменить или отключить.

Эта функция была беззастенчиво заимствована из Bash.

Значение последнего затронутого OID , возвращаемый оператором INSERT или \lo_import. Действительность этой переменной гарантируется только до тех пор, пока не будет отображен вывод следующего оператора SQL. Серверы PostgreSQL, начиная с версии 12, больше не поддерживают системные столбцы OID, поэтому LASTOID всегда будет равен 0 после INSERT при указании на такие серверы.

Основное сообщение об ошибке и соответствующий SQLSTATE для последнего неудачного запроса в текущем сеансе psql или пустая строка и 00000, если в текущем сеансе не было ошибок.

Если установлено, если оператор в блоке транзакций генерирует ошибку, ошибка игнорируется, и транзакция продолжается. При выборе интерактивного эти ошибки игнорируются только в интерактивных сеансах, а не при чтении файлов сценариев. Если выключено (по умолчанию), оператор в блоке транзакции, выдающий ошибку, прервет всю транзакцию. Режим отката ошибки работает, предоставляя вам неявную SAVEPOINT непосредственно перед каждым оператором, найденным в блоке транзакции, а затем откатываясь к точке сохранения, если оператор терпит неудачу.

По умолчанию обработка оператора продолжается после ошибки. Когда эта переменная включена, обработка немедленно останавливается. В интерактивном режиме psql возвращается к командной строке; в противном случае psql завершит работу и вернет код ошибки 3, чтобы отличить этот случай от неустранимых ошибок, о которых сообщается с кодом ошибки 1. В обоих случаях любой выполняющийся в данный момент сценарий (если есть сценарий верхнего уровня) и любые другие сценарии, которые могут были вызваны) будут немедленно завершены. Если командная строка верхнего уровня содержит несколько операторов SQL, обработка останавливается на текущем операторе.

Порт сервера базы данных, к которому вы в данный момент подключены. Это устанавливается каждый раз, когда вы подключаетесь к базе данных (включая запуск программы), но его можно изменить или отключить.

PROMPT1
PROMPT2
PROMPT3

Определите, какие проблемы psql вы обратите внимание, что это должно выглядеть так См. инструкции ниже.

Включение этой переменной эквивалентно параметру командной строки -q. Это, вероятно, не слишком полезно в интерактивном режиме.

Количество строк, возвращенных или затронутых последним SQL-запросом, или 0, если запрос завершился ошибкой или количество строк не было сообщено.

Номер версии сервера как строка, например 9.6.2, 10.1 или 11beta1, и в числовом формате, например 90602 или 100001. Они устанавливаются каждый раз, когда вы подключаетесь к базе данных (включая запуск программы), но их можно изменить или отключить.

Для этой переменной можно задать значение never, error или always, чтобы определить, будут ли поля CONTEXT появляться в сообщениях сервера. Значение по умолчанию — ошибки (то есть контекст будет отображаться в сообщениях об ошибках, но не в сообщениях с предупреждением или предупреждением). Этот параметр не действует, если для параметра VERBOSITY установлено значение terse или sqlstate. (См. также \errverbose, чтобы использовать подробную версию только что полученной ошибки.)

Установка этой переменной эквивалентна параметру командной строки -S.

Установка этой переменной эквивалентна опция командной строки строка -s.

Код ошибки (см. Приложение A), связанный с последним неудачным SQL-запросом, или 00000, если он был успешным.

Пользователь базы данных, к которому вы в данный момент подключены в качестве. Это значение устанавливается каждый раз, когда вы подключаетесь к базе данных (включая запуск программы), но его можно изменить или переопределить.

Для этой переменной можно установить значение default , verbose , terse или sqlstate для управления подробными отчетами об ошибках. (См. также \errverbose, чтобы использовать подробную версию ошибки, которую вы только что получено.)

ВЕРСИЯ
ИМЯ_ВЕРСИИ
НОМЕР_ВЕРСИИ

Эти переменные задаются при запуске программы, чтобы отразить версию psql, соответственно, в виде подробной строки, короткой строки (например, , 9.6.2, 10.1 или 11beta1) и номер (например, 90602 или 100001). ). Их можно изменить или удалить.

Интерполяция SQL

запросит таблицу my_table . Обратите внимание, что это может быть небезопасно: значение переменной копируется дословно, поэтому оно может содержать несбалансированные кавычки или даже операторы обратной косой черты. Вы хотите убедиться, что его место имеет смысл.

Когда значение должно использоваться в качестве идентификатора или литерала SQL, безопаснее всего заключить его в кавычки. Чтобы указать значение переменной как литерал SQL, заключите двоеточие, за которым следует имя переменной, в одинарные кавычки. Чтобы указать значение в качестве идентификатора SQL, заключите двоеточие, за которым следует имя переменной, в двойных кавычках. Эти конструкции правильно обрабатывают кавычки и другие специальные символы, встроенные в значение переменной. Приведенный выше пример безопаснее было бы записать следующим образом:

Примером использования этого механизма является копирование содержимого файла в столбец таблицы. Сначала загрузите файл в переменную, а затем интерполируйте значение переменной как строку в кавычках:

(обратите внимание, что это все равно не будет работать, если my_file.txt содержит байты NUL. psql не поддерживает встроенные байты NUL в переменную значений).

Так как двоеточия могут появляться в Операторы SQL, нет очевидной попытки интерполяции (т.е. файла. В любом случае вы можете обойти двоеточие обратной косой чертой, чтобы избежать путаницы.

Специальный синтаксис : > возвращает TRUE или FALSE в зависимости от того, существует переменная или нет, и поэтому всегда заменяется, если двоеточие не имеет обратной косой черты. три переменные PROMPT1 , PROMPT2 и PROMPT3 содержат строки и специальные escape-последовательности, описывающие внешний вид подсказки. Подсказка 1 — это обычная подсказка, которая появляется, когда psql запрашивает новую команду. Флаг 2 выдается, когда во время ввода команды ожидается дополнительный ввод, например, потому что команда не заканчивалась точкой с запятой или закрытой кавычкой. Подсказка 3 появляется, когда вы выполняете команду COPY FROM STDIN SQL и вам нужно записать строковое значение в терминал.

Значение выбранная переменная запроса печатается дословно, за исключением случаев, когда указан амперсанд (%) В зависимости от следующего символа j e заменен другим текстом. Определенные замены:

Полное имя хоста (с доменным именем) сервера базы данных или [local], если соединение осуществляется через доменный сокет Unix, или [local: /dir/name], если сокет домена Unix не скомпилирован в расположение по умолчанию.

Имя хоста сервера базы данных, сокращенное в первой точке, или [local], если соединение осуществляется через сокет домена Unix.

Номер порта, на котором прослушивается сервер базы данных.

Имя пользователя сеанса база данных. (Расширение этого значения может измениться во время сеанса базы данных в результате команды SET SESSION AUTHORIZATION.)

Имя текущей базы данных.

Аналогично %/ , но результат

(тильда) , если база данных является вашей базой данных по умолчанию

Если пользователь сеанса является суперпользователем базы данных, то # , иначе > . (Расширение этого значения может измениться во время сеанса базы данных в результате оператора SET SESSION AUTHORIZATION.)

Идентификатор внутреннего процесса, к которому вы в данный момент подключены.

Флаг V 1 обычно = , но @, если это сеанс на неактивной ветке условного блока, или ^, если в однострочном режиме, или ! если сеанс отключен от базы данных (что может произойти, если \connect не работает). В предупреждении 2 %R заменяется символом в зависимости от того, почему psql ожидает следующего ввода: — если команда еще не завершена, но * если есть незавершенный /*. */ комментарий, одинарная кавычка, если есть строка в кавычках без конца, двойная кавычка, если задан идентификатор в кавычках без конца, знак доллара, если строка без конца содержит кавычку доллара, или (, если левая скобка не случайна. По запросу 3% R ничего не делает.

Состояние транзакции: пустая строка, если нет в блоке транзакции, или *, если в блоке транзакции, или !, если в блоке транзакции с ошибкой, или ?, если состояние транзакции неопределенно (например, , потому что связи нет).

Номер строки в текущем операторе, начинающийся с 1 .

Символ заменяется указанным восьмеричным кодом.

Имя ценность переменные psql. Дополнительные сведения см. в разделе «Переменные» выше.

Вывод команды аналогичен обычной подстановке «обратная галочка».

Подсказки могут содержать управляющие символы терминала, например, для изменения цвета, фона или стиля текста подсказок или изменить имя окна терминала. Эти непечатаемые управляющие символы необходимо сделать невидимыми, окружив их символами %[ и %], чтобы функции редактирования строки Readline работали правильно. В объявлении может быть несколько пар. Например:

приводит к отображению полужирного ( 1; ) желтого на черном ( 33;40 ) приглашения на терминалах, совместимых с VT100 и поддерживающих цвет.

То же самое широкое пустое пространство, что и у большинства последний вывод PROMPT1. Это можно использовать в качестве параметра PROMPT2, чтобы многострочные команды вставлялись в первую строку, но не отображалось вторичное сообщение.

Чтобы вставить знак процента в уведомление, введите %% . Подсказки по умолчанию: «%/%R%x%#» для подсказок 1 и 2 и «>> ‘ для примечания 3.

Эта функция является явным плагиатом из tcsh.

Редактирование командной строки

psql поддерживает библиотеку Readline для удобного редактирования и загрузки строк. История команд автоматически сохраняется при закрытии psql и перезагружается при запуске psql. Также поддерживается автодополнение с помощью табуляции, хотя логика автодополнения не предназначена для синтаксического анализа SQL. Запросы, созданные завершением табуляции, также могут конфликтовать с другими операторами SQL, такими как SET TRANSACTION ISOLATION LEVEL. Если вам по каким-то причинам не нравится добавление карт, вы можете отключить его, поставив в файл с именем .inputrc в вашем домашнем каталоге:

(это не функция psql, а Readline. Прочтите их документацию для более подробной информации).

Среда

Если \ pset столбцы нуль, управляет шириной формата переноса и шириной, чтобы определить, требуется ли для широкого вывода пейджер или его следует изменить на портретный формат в расширенном автоматическом режиме.

PGDATABASE
PGHOST
PGPORT
PGUSER

Параметры подключения по умолчанию (см. раздел 34.15).

Указывает, использовать ли цвет в диагностических сообщениях. Возможные значения: always , auto и never .

PSQL_EDITOR
EDITOR
VISUAL

Редактор, используемый командами \e , \ef и \ev . Эти переменные проверяются в указанном порядке; используется первый набор. Если ни один из них не установлен, по умолчанию используется vi в системах Unix или notepad.exe в системах Windows.

Когда \e , \ef или \ev используются с аргументом номера строки, эта переменная указывает Аргумент командной строки, используемый для передачи номера начальной строки пользовательскому редактору. Для таких редакторов, как Emacs или vi, это плюс. Если между именем параметра и номером строки должен быть пробел, включите завершающий пробел в значение переменной. Примеры:

По умолчанию + в системах Unix (соответствует редактору vi по умолчанию и полезен для многих других распространенных редакторов); но в системах Windows нет значения по умолчанию.

Альтернативное расположение файла истории команд. Выполняется тильдовая распаковка (

).

Если результаты запроса не помещаются на экране, они связываются этой командой. Типичные значения больше или меньше. Использование пейджеров можно отключить, задав для PSQL_PAGER или PAGER пустую строку или задав связанные с пейджером параметры команды \pset. Эти переменные проверяются в указанном порядке; используется первый набор. Если ни один из них не настроен, значение по умолчанию — использовать больше на большинстве платформ, но меньше на Cygwin.

Альтернативное расположение файла .psqlrc пользователя. Выполняется раскрытие тильды (

).

Команда, выполняемая \! command.

Каталог для хранения временных файлов. По умолчанию используется /tmp .

Этот инструмент, как и большинство других инструментов PostgreSQL, также использует переменные среды, поддерживаемые библиотекой libpq (см. раздел 34.15).

Файлы

Если не передан — X, psql попытается прочитать и выполнить команды из общесистемного файла запуска ( psqlrc ), а затем из личного файла запуска пользователя (

/ .psqlrc) после подключения к базе данных, но прежде чем принимать обычные команды. Эти файлы можно использовать для настройки клиента и/или сервера по своему вкусу, обычно с помощью команд \set и SET.

Общесистемный файл запуска называется psqlrc и находится в «конфигурации системы». каталог установки, который наиболее надежно определяется запуском pg_config —sysconfdir. По умолчанию этот каталог будет ../etc/ относительно каталога, содержащего исполняемые файлы PostgreSQL. Имя этого каталога может явно задается с помощью переменной среды PGSYSCONFDIR.

Личный домашний файл пользователя называется .psqlrc и находится в домашнем каталоге вызывающего пользователя. В Windows, в которой эта концепция отсутствует, личный файл запуска называется %APPDATA%\postgresql\psqlrc.conf. Расположение пользовательского файла запуска можно явно указать с помощью переменной среды PSQLRC.

Как системный файл запуска, так и личный файл запуска пользователя можно сделать специфичными для psql, добавив дефис и PostgreSQL. основной или дополнительный номер версии к имени файла, например

/.psqlrc-9.2.5 . Файл, наиболее зависящий от версии, будет загружен, а не файл, не зависящий от версии.

История командной строки хранится в файле

/.psql_history или %APPDATA%\postgresql\ psql_history в Windows.

Местоположение файла истории может быть явно задано с помощью переменной psql HISTFILE или переменной среды PSQL_HISTORY.

Примечания

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

Если вы хотите использовать psql pro при подключении к нескольким серверам разных основных версий мы рекомендуем использовать последнюю версию psql. В качестве альтернативы вы можете сохранить копию psql каждой основной версии и убедиться, что вы используете версию, соответствующую рассматриваемому серверу. Но на практике в этом дополнительном усложнении нет необходимости.

До версии PostgreSQL 9.6 параметр -c подразумевал -X ( —no-psqlrc ); теперь это не так.

До PostgreSQL 8.4 psql позволял первому аргументу однобуквенной обратной косой черты начинаться непосредственно после команды без пробелов. Теперь требуются пробелы.

Примечания для пользователей Windows

psql создан как «консольное приложение». Поскольку окна консоли Windows используют другую кодировку, чем остальная часть системы, вы должны быть особенно осторожны при использовании 8-битных символов внутри psql. Если psql обнаружит проблемную кодовую страницу консоли, он предупредит вас при запуске. Чтобы изменить кодовую страницу консоли, необходимо выполнить две вещи:

Задайте кодовую страницу, введя cmd.exe /c chcp 1252 . (1252 — хорошая кодовая страница для немецкого языка; замените ее своим значением.) Если вы используете Cygwin, вы можете поместить эту команду в /etc/profile .

Установите консольный шрифт на Lucida Console, потому что растровый шрифт не работает с кодовой страницей ANSI .

Примеры

В первом примере показано, как разделить выражение на несколько строк записи. Обратите внимание на запрос на изменение:

Теперь снова посмотрите на определение таблицы:

Теперь давайте изменим запрос на что-то более интересное:

Предположим, вы заполнили таблицу. данные и хотите посмотреть:

Вы можете отображать таблицы по-разному, используя команду \pset:

В качестве альтернативы используйте короткие команды:

Кроме того, эти опции выводят форматы могут быть настроены для одного запроса с помощью \g :

Вот пример использования команды \df для поиска только функций с именами, соответствующими int*pl и вторым аргументом которых является тип bigint :

При необходимости результаты запроса можно отобразить в виде кросс-таблицы с помощью команды \crosstabview:

Во втором примере показана таблица умножения со строками, расположенными в обратном порядке, и столбцами, расположенными в независимом порядке возрастания номеров.

Отправить исправление

Если в документации вы видите что-то неправильное, не соответствующее вашему опыту работы с определенной функцией или требующее дополнительных пояснений, используйте эту форму, чтобы сообщить о проблеме с документацией.

Copyright © 1996-2022 The Global Development Group of PostgreSQL

Испанский язык

Поделиться с друзьями
Решатор