Основные команды 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 запуск команды из внешнего файла, например \i /my/directory/my.sql
- \pset – команда настройки параметров форматирования
- \echo – выводит сообщение
- \set – устанавливает значение переменной среды. Без параметров выводит список текущих переменных (\unset – удаляет).
- \? – справочник psql
- \help – справочник SQL
- \q (или Ctrl+D) – выход с программы
Подключение к серверу баз данных
Итак, утилита psql позволяет вам управлять сервером баз данных PostgreSQL. Но вначале нужно подключиться к серверу. Подключиться с помощью этой утилиты вы можете к локально установленному серверу, или удалённому используя сеть. Подключение выполняется таким способом:
$ psql -d <база> -U <роль> -h <узел> -p <порт>
По умолчанию при подключении вы используете:
- в качестве имени базы и роли – имя пользователя ОС;
- в качестве адреса сервера – локальный сокет, который находится в каталоге /tmp/ и порт 5432.
Таким образом если вы в системе находитесь под пользователем postgres, то следующие команды будут равнозначными:
$ psql $ psql -d postgres -U postgres -h /tmp/ -p 5432
Для получения информации о узле к которому вы подключены используется команда \conninfo:
postgres@s-pg13:~$ psql psql (13.3) Type "help" for help. postgres=# \conninfo You are connected to database "postgres" as user "postgres" via socket in "/tmp" at port "5432". postgres=# \q postgres@s-pg13:~$ psql -d postgres -U postgres -h /tmp -p 5432 psql (13.3) Type "help" for help. postgres=# \conninfo You are connected to database "postgres" as user "postgres" via socket in "/tmp" at port "5432". postgres=# \q
Не выходя из терминала psql вы можете подключится к другому узлу с помощью команды .
Все команды psql начинаются с символа обратного слеша “\”. Но помимо этих команд можно выполнять запросы SQL, для них обратный слеш не нужен, например SELECT.
Чтобы выйти из терминала psql можно использовать 2 равносильные команды и .
Какие параметры требуют перезапуск сервера?
Чтобы это выяснить нужно посмотреть все параметры у которых context = postmaster:
postgres@postgres=# SELECT name, setting, unit FROM pg_settings WHERE context = 'postmaster';
name | setting | unit
-------------------------------------+---------------------------------------+------
archive_mode | off |
autovacuum_freeze_max_age | 200000000 |
autovacuum_max_workers | 3 |
autovacuum_multixact_freeze_max_age | 400000000 |
bonjour | off |
bonjour_name | |
cluster_name | |
config_file | /usr/local/pgsql/data/postgresql.conf |
data_directory | /usr/local/pgsql/data |
data_sync_retry | off |
dynamic_shared_memory_type | posix |
event_source | PostgreSQL |
external_pid_file | |
hba_file | /usr/local/pgsql/data/pg_hba.conf |
hot_standby | on |
huge_pages | try |
ident_file | /usr/local/pgsql/data/pg_ident.conf |
ignore_invalid_pages | off |
jit_provider | llvmjit |
listen_addresses | localhost |
logging_collector | off |
max_connections | 100 |
max_files_per_process | 1000 |
max_locks_per_transaction | 64 |
max_logical_replication_workers | 4 |
max_pred_locks_per_transaction | 64 |
max_prepared_transactions | 0 |
max_replication_slots | 10 |
max_wal_senders | 10 |
max_worker_processes | 8 |
old_snapshot_threshold | -1 | min
port | 5432 |
recovery_target | |
recovery_target_action | pause |
recovery_target_inclusive | on |
recovery_target_lsn | |
recovery_target_name | |
recovery_target_time | |
recovery_target_timeline | latest |
recovery_target_xid | |
restore_command | |
shared_buffers | 16384 | 8kB
shared_memory_type | mmap |
shared_preload_libraries | |
superuser_reserved_connections | 3 |
track_activity_query_size | 1024 | B
track_commit_timestamp | off |
unix_socket_directories | /tmp |
unix_socket_group | |
unix_socket_permissions | 0777 |
wal_buffers | 512 | 8kB
wal_level | replica |
wal_log_hints | off |
(53 rows)
Time: 0,666 ms
Сводка
![]()
Имя статьи
PostgreSQL. Конфигурирование
Описание
Сервер баз данных PostgreSQL имеет очень много параметров с помощью которых его можно настроить под любые нужды. В этой статье мы не будет рассматривать все эти параметры. Здесь мы посмотрим на различные способы настройки этого сервера.
Решение 1. Установите для типа запуска BITS и службы обновления Windows значение автоматический.
Проблема с обновлением Windows может возникнуть, если какая-либо из основных служб обновления находится в состоянии ошибки или отключена. В этом контексте установка типа запуска этих служб обновления (т. Е. BITS и службы обновления Windows) на автоматический может решить проблему.
- Нажмите клавишу Windows и в поиске Windows введите: Services. Теперь наведите указатель мыши на результат «Службы» и на правой панели меню «Пуск» выберите «Запуск от имени администратора».Открыть сервисы в качестве администратора
- Теперь дважды щелкните службу Центра обновления Windows (или щелкните правой кнопкой мыши и выберите «Свойства») и измените ее тип запуска на «Автоматический».Откройте свойства службы обновления Windows
- Затем нажмите кнопку «Пуск» и примените изменения.Установите тип запуска службы обновления Windows на автоматический и запустите ее.
- После этого повторите то же самое для службы BITS (фоновая интеллектуальная служба передачи), чтобы установить для ее типа запуска значение «Автоматический» и запустить его.Измените тип запуска BITS на автоматический
- Теперь перезагрузите компьютер и проверьте, решена ли проблема со службой обновлений.
- Если нет, нажмите клавишу Windows и откройте Настройки.
- Теперь выберите «Обновление и безопасность» и на левой панели перейдите на вкладку «Устранение неполадок».Открыть обновление и безопасность
- Затем на правой панели окна «Обновление и безопасность» откройте Дополнительные средства устранения неполадок.Откройте дополнительные средства устранения неполадок
- Теперь в разделе Get Up and Running разверните опцию Windows Update.
- Затем нажмите «Запустить средство устранения неполадок» и дождитесь завершения процесса.Запустите средство устранения неполадок Центра обновления Windows.
- По завершении примените рекомендуемые шаги по устранению неполадок и проверьте, нормально ли работает обновление Windows.
Системные требования для установки PostgreSQL 12 на Windows
PostgreSQL 12 можно установить не на все версии Windows, в частности официально поддерживаются следующие версии и только 64 битные:
- Windows Server 2012 R2;
- Windows Server 2016;
- Windows Server 2019.
Как видим, в официальном перечне нет Windows 10, однако установка на данную систему проходит без проблем, как и последующее функционирование PostgreSQL.
Кроме этого есть и другие требования:
- Процессор как минимум с частотой 1 гигагерц;
- 2 гигабайта оперативной памяти;
- Как минимум 512 мегабайт свободного места на диске (рекомендуется больше для установки дополнительных компонентов);
- Также рекомендовано, чтобы все обновления операционной системы Windows были установлены.
Запуск Apache 2.4 с модулем 1С внутри Docker контейнера
Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе
Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии
Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.
Взаимодействие psql с операционной системой
Терминал psql умеет выполнять команды операционной системы. Для этого нужно использовать команду “\!“. Например так:
postgres=# \! hostname s-pg13
Можно установить переменную окружения в систему с помощью команды \setenv:
postgres=# \setenv TEST Hello postgres=# \! echo $TEST Hello
А для того чтобы перевести вывод команд в файл нужно использовать ‘\o имя_файла’. И чтобы вернуть всё обратно используем “\o” без имени файла. Например:
postgres=# \o dba.log postgres=# SELECT schemaname, tablename, tableowner FROM pg_tables LIMIT 5; postgres=# \! cat dba.log ---------------------- schemaname | pg_catalog tablename | pg_statistic tableowner | postgres ---------------------- schemaname | pg_catalog tablename | pg_type tableowner | postgres ---------------------- schemaname | pg_catalog tablename | pg_foreign_table tableowner | postgres ---------------------- schemaname | pg_catalog tablename | pg_authid tableowner | postgres ---------------------- schemaname | pg_catalog tablename | pg_statistic_ext_data tableowner | postgres postgres=# \o postgres=# \x Expanded display is off.
В предыдущем листинге с помощью последней команды мы выключили расширенный режим.
Помимо вывода в файл psql умеет выполнять команды из файла. Это делается с помощью команды “\i имя файла”. Вот пример:
postgres=# \q postgres@s-pg13:~$ cat <<EOT >> dba1.log > SELECT 'pg_statistic: '|| count(*) FROM pg_statistic; > SELECT 'pg_type: '|| count(*) FROM pg_type; > SELECT 'pg_foreign_table: '|| count(*) FROM pg_foreign_table; > EOT postgres@s-pg13:~$ psql psql (13.3) Type "help" for help. postgres=# \! cat dba1.log SELECT 'pg_statistic: '|| count(*) FROM pg_statistic; SELECT 'pg_type: '|| count(*) FROM pg_type; SELECT 'pg_foreign_table: '|| count(*) FROM pg_foreign_table; postgres=# \a \t \pset fieldsep ' ' Output format is unaligned. Tuples only is on. Field separator is " ". postgres=# \i dba1.log pg_statistic: 402 pg_type: 411 pg_foreign_table: 0 postgres=# \a \t \pset fieldsep '|' Output format is aligned. Tuples only is off. Field separator is "|".
В примере выше мы проделали следующее:
- вышли из psql;
- создали скрипт dba1.log, который подсчитывает количество строк из:
- pg_statistic – статистическая информация о содержимом базы данных;
- pg_type – информация о типах данных;
- pg_foreign_table – дополнительная информация о сторонних таблицах.
- обратно вернулись в psql;
- прочитали файл dba1.log;
- изменили формат вывода;
- выполнили скрипт sql команд;
- вернули формат вывода в прежнее состояние.
Установка PostgreSQL на Linux (Mint)
Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:
sudo apt install postgresql-client-<VERSION>
Например:
sudo apt install postgresql-client-12
Для установки PostgreSQL сервера:
sudo apt install postgresql
Проверим, можем ли мы подключиться к базе данных PostgreSQL:
sudo -u postgres psql -c "SELECT version();"
Вывод команды должен быть примерно таким:
$ sudo -u postgres psql -c "SELECT version();"
version
----------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 10.10 (Ubuntu 10.10-0ubuntu0.18.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit
(1 row)
Запуск и настройка pgAdmin 4
PostgreSQL 12 и pgAdmin 4 мы установили, теперь давайте запустим pgAdmin 4, подключимся к серверу и настроим рабочую среду pgAdmin.
Чтобы запустить pgAdmin 4, зайдите в меню пуск, найдите пункт PostgreSQL 12, а в нем pgAdmin 4.
Подключение к серверу PostgreSQL 12
pgAdmin 4 имеет веб интерфейс, поэтому в результате у Вас должен запуститься браузер, а в нем открыться приложение pgAdmin 4.
При первом запуске pgAdmin 4 появится окно Set Master Password», в котором мы должны задать «мастер-пароль», это можно и не делать, однако если мы будем сохранять пароль пользователя (галочка «Сохранить пароль»), например, для того чтобы каждый раз при подключении не вводить его, то настоятельно рекомендуется придумать и указать здесь дополнительный пароль, это делается один раз.
Вводим и нажимаем «ОК».
![]()
Чтобы подключиться к только что установленному локальному серверу PostgreSQL в обозревателе серверов, щелкаем по пункту «PostgreSQL 12».
В итоге запустится окно «Connect to Server», в котором Вам нужно ввести пароль системного пользователя postgres, т.е. это тот пароль, который Вы придумали, когда устанавливали PostgreSQL. Вводим пароль, ставим галочку «Save Password», для того чтобы сохранить пароль и каждый раз не вводить его (благодаря функционалу «мастер-пароля», все сохраненные таким образом пароли будут дополнительно шифроваться).
Нажимаем «OK».
![]()
В результате Вы подключитесь к локальному серверу PostgreSQL 12 и увидите все объекты, которые расположены на данном сервере.
![]()
Установка русского языка в pgAdmin 4
Как видите, по умолчанию интерфейс pgAdmin 4 на английском языке, если Вас это не устраивает, Вы можете очень просто изменить язык на тот, который Вам нужен. pgAdmin 4 поддерживает много языков, в том числе и русский.
Для того чтобы изменить язык pgAdmin 4, необходимо зайти в меню «File -> Preferences».
![]()
Затем найти пункт «User Languages», и в соответствующем поле выбрать значение «Russian». Для сохранения настроек нажимаем Save», после этого перезапускаем pgAdmin 4 или просто обновляем страницу в браузере.
![]()
В результате pgAdmin 4 будет русифицирован.
![]()
Пример написания SQL запроса в Query Tool (Запросник)
Для того чтобы убедиться в том, что наш сервер PostgreSQL работает, давайте напишем простой запрос SELECT, который покажет нам версию сервера PostgreSQL.
Для написания SQL запросов в pgAdmin 4 используется инструмент Query Tool или на русском «Запросник», его можно запустить с помощью иконки на панели или из меню «Инструменты».
После того как Вы откроете Query Tool, напишите
SELECT VERSION()
Этот запрос показывает версию PostgreSQL.
![]()
Как видите, все работает!
DDL для управления коллекциями схем
В базе данных можно создавать коллекции схем XML и связывать их с переменными и столбцами типа xml . Для управления коллекциями схем в базе данных в SQL Server предусмотрены следующие инструкции DDL:
-
CREATE XML SCHEMA COLLECTION (Transact-SQL) импортирует компоненты схемы в базу данных.
-
ALTER XML SCHEMA COLLECTION (Transact-SQL) изменяет компоненты схемы в существующей коллекции схем XML.
-
DROP XML SCHEMA COLLECTION (Transact-SQL) полностью удаляет коллекцию схем XML и все ее компоненты.
Чтобы использовать коллекцию XML-схем и содержащиеся в ней схемы, следует сначала создать коллекцию и схемы с помощью инструкции CREATE XML SCHEMA COLLECTION. После создания коллекции схемы можно создавать переменные и столбцы типа xml и связывать с ними коллекцию схем
Обратите внимание, что после создания коллекции различные компоненты схем будут храниться в метаданных. Кроме того, добавлять большие компоненты в существующие схемы или новые схемы в существующую коллекцию можно с помощью инструкции ALTER XML SCHEMA COLLECTION
Удалить коллекцию схем можно с помощью инструкции DROP XML SCHEMA COLLECTION. При этом удаляются все схемы в коллекции и сам объект коллекции
Обратите внимание, что для удаления коллекции схем должны выполняться условия, описанные в разделе DROP XML SCHEMA COLLECTION (Transact-SQL)
Конфигурационный файл postgresql.conf
Главный конфигурационный файл для кластера PostgreSQL – это postgresql.conf, в разных системах он может находится в разных местах. Так как мы собирали сервер из исходников и не меняли путь хранения этого файла, то по умолчанию он будет находится в каталоге PGDATA:
postgres@s-pg13:~$ echo $PGDATA /usr/local/pgsql/data postgres@s-pg13:~$ ls -l $PGDATA/postgresql.conf -rw------- 1 postgres postgres 28023 июн 21 15:15 /usr/local/pgsql/data/postgresql.conf
Этот конфигурационный файл читается один раз при запуске сервера. Если параметр указан несколько раз, то применяется последний.
Самый точный способ узнать расположение этого файла, посмотреть из терминала psql:
postgres@s-pg13:~$ psql
Timing is on.
psql (13.3)
Type "help" for help.
postgres@postgres=# SHOW config_file;
config_file
---------------------------------------
/usr/local/pgsql/data/postgresql.conf
(1 row)
Time: 0,391 ms
postgres@postgres=# \q postgres@s-pg13:~$ pg_ctl reload server signaled
Второй способ – из терминала psql:
postgres@s-pg13:~$ psql Timing is on. psql (13.3) Type "help" for help. postgres@postgres=# SELECT pg_reload_conf(); pg_reload_conf ---------------- t (1 row) Time: 0,555 ms
Но есть некоторые параметры, для изменения которых потребуется перезапуск сервера.
Работа с шаблонами баз данных
При установке PostgreSQL по умолчанию создаются три базы данных: postgres, template0, template1.
Template0 и template1 — это шаблоны баз данных, из которых в дальнейшем будут создаваться пользовательские БД.
Фактически, когда вы выполняете команду CREATE DATABASE, Postgres создает клон базы template1. Если внести изменения в template1, они будут наследоваться всеми новыми создаваемыми базами. Это позволяет, например, добавить в template1 необходимые вам таблицы с данными или установить расширения, после чего не потребуется добавлять их для каждой новой базы.
Обратите внимание, что для установки расширений необходимо подключиться к template1 от суперпользователя (postgres или другой роли, имеющей данные привилегии). Подключитесь к шаблону template1:
Подключитесь к шаблону template1:
\c template1
И установите расширение:
CREATE EXTENSION название_расширения;
Например, если вы установите в template1 расширение pgcrypto, то в дальнейшем, при выполнении CREATE DATABASE, новые базы будут создаваться с уже установленным pgrypto.
![]()
![]()
Template0 — это исходная база, которая используется, когда нужно создать новую базу без каких-либо изменений, внесенных в шаблон template1, или же вернуть template1 в его изначальное состояние.
Чтобы создать «чистую» базу на основе template0, нужно выполнить:
CREATE DATABASE имя_базы TEMPLATE template0;
Также template0 необходима, если вам нужно внести изменения в кодировку или локаль создаваемой базы данных. По умолчанию (при использовании template1) эти изменения невозможны.
В этом случае нужно при создании базы указать template0 в качестве шаблона и указать требуемую кодировку и/или локаль, например:
CREATE DATABASE имя_базы TEMPLATE template0 ENCODING 'SQL_ASCII';
Пересоздание template1
С помощью template0 вы также можете вернуть базу template1 в исходный вид: для этого потребуется ее удалить, а после создать заново, на основе шаблона template0.
Сначала необходимо указать, что template1 не является шаблоном, чтобы удаление стало возможно:
UPDATE pg_database SET datistemplate = false WHERE datname = 'template1';
Далее удалить template1:
DROP DATABASE template1;
И создать базу template1 заново, указав, что она будет являться шаблоном:
CREATE DATABASE template1 OWNER postgres TEMPLATE template0 is_template true;
Создать базу данных
Создадим базу данных
heihei_ru_db
с кодировкой utf8
CREATE DATABASE «heihei_ru_db» WITH OWNER «postgres» ENCODING ‘UTF8’;
CREATE DATABASE
Создадим базу данных heihei с кодировкой utf8 и укажем значения для Collate, Ctype и Template
CREATE DATABASE «heihei» WITH OWNER «postgres» ENCODING
‘UTF8’ LC_COLLATE = ‘C’ LC_CTYPE = ‘C’ TEMPLATE = template0;
CREATE DATABASE
Проверим, что получилось
\l
Name | Owner | Encoding | Collate | Ctype | Access privileges
—————+———-+———-+—————————-+—————————-+————————
heihei | postgres | UTF8 | C | C |
urn.su | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
topbicyle.ru | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
postgres | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
template0 | postgres | UTF8 | English_United States.1252 | English_United States.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | English_United States.1252 | English_United States.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
(7 rows)
Если я в
bash
сделаю
locale -a
То получу сразу четыре доступные кодировки
C
C.UTF-8
en_US.utf8
POSIX
Но создать БД, например, с en_US.utf8 у меня не получается
CREATE DATABASE «heihei» WITH OWNER «postgres» ENCODING
‘UTF8’ LC_COLLATE = ‘en_US.utf8’ LC_CTYPE = ‘en_US.utf8’ TEMPLATE = template0;
Приводит к ошибке
ERROR: invalid locale name: «en_US.UTF-8»
UPD: Выполнил такую же команду в
Ubuntu
и база успешно создана
CREATE DATABASE «new_db» WITH OWNER «postgres» ENCODING ‘UTF8’ LC_COLLATE = ‘en_US.UTF-8’ LC_CTYPE = ‘en_US.UTF-8’ TEMPLATE = template0;
CREATE DATABASE
Формат выводимой информации
Когда вы вводите и выполняете какой-нибудь запрос в терминале psql, то в выводе видите результат этого запроса. По умолчанию такой вывод показывается в форме таблички. Но вы можете настроить формат выводимой информации сами:
- – с выравниванием / без выравнивания
- – отображение строки заголовка и итоговой строки / без такого отображения
- – можно задать разделитель (по умолчанию используется вертикальная черта ‘|’)
- – расширенный режим, когда нужно вывести много столбцов одной таблицы, они будут выведены в один столбец
Например, получим информацию из представления pg_tables. Затем поменяем формат и снова получим информацию. А затем все вернем на место:
postgres@s-pg13:~$ psql psql (13.3) Type "help" for help. postgres=# SELECT * FROM pg_tables LIMIT 5; schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity ------------+-----------------------+------------+------------+------------+----------+-------------+------------- pg_catalog | pg_statistic | postgres | | t | f | f | f pg_catalog | pg_type | postgres | | t | f | f | f pg_catalog | pg_foreign_table | postgres | | t | f | f | f pg_catalog | pg_authid | postgres | pg_global | t | f | f | f pg_catalog | pg_statistic_ext_data | postgres | | t | f | f | f (5 rows) postgres=# \t \a \pset fieldsep ' ' Tuples only is on. Output format is unaligned. Field separator is " ". postgres=# SELECT * FROM pg_tables LIMIT 5; pg_catalog pg_statistic postgres t f f f pg_catalog pg_type postgres t f f f pg_catalog pg_foreign_table postgres t f f f pg_catalog pg_authid postgres pg_global t f f f pg_catalog pg_statistic_ext_data postgres t f f f postgres=# \t \a \pset fieldsep '|' Tuples only is off. Output format is aligned. Field separator is "|". postgres=# SELECT * FROM pg_tables LIMIT 5; schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity ------------+-----------------------+------------+------------+------------+----------+-------------+------------- pg_catalog | pg_statistic | postgres | | t | f | f | f pg_catalog | pg_type | postgres | | t | f | f | f pg_catalog | pg_foreign_table | postgres | | t | f | f | f pg_catalog | pg_authid | postgres | pg_global | t | f | f | f pg_catalog | pg_statistic_ext_data | postgres | | t | f | f | f (5 rows)
А вот пример использования расширенного режима (\x). Выглядит это так, как будто табличку перевернули:
postgres=# \x Expanded display is on. postgres=# SELECT * FROM pg_tables LIMIT 5; ----------------------- schemaname | pg_catalog tablename | pg_statistic tableowner | postgres tablespace | hasindexes | t hasrules | f hastriggers | f rowsecurity | f ----------------------- schemaname | pg_catalog tablename | pg_type tableowner | postgres tablespace | hasindexes | t hasrules | f hastriggers | f rowsecurity | f ----------------------- schemaname | pg_catalog tablename | pg_foreign_table tableowner | postgres tablespace | hasindexes | t hasrules | f hastriggers | f rowsecurity | f ----------------------- schemaname | pg_catalog tablename | pg_authid tableowner | postgres tablespace | pg_global hasindexes | t hasrules | f hastriggers | f rowsecurity | f ----------------------- schemaname | pg_catalog tablename | pg_statistic_ext_data tableowner | postgres tablespace | hasindexes | t hasrules | f hastriggers | f rowsecurity | f















![Psql интерактивный терминал postgresql [айти бубен]](http://fuzeservers.ru/wp-content/uploads/6/2/3/6234061dd2bd72cafee0075aa4e6d99b.png)













