SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Назад

Краткий справочник команд PostgreSQL


Метки: sql postgresql psql краткий справочник pg_dump

Подключение к БД

psql --host=127.0.0.1 \
--username=postgres --password

Управление пользователями

Создание пользователя

CREATE DATABASE dbname;
CREATE USER dbuser WITH password 'dbpassword';
GRANT ALL ON DATABASE dbname TO dbuser;

Создание роли/группы

CREATE ROLE groupname;

Добавление пользователя в роль/группу

ALTER GROUP groupname ADD USER username;

Установить права только INSERT и UPDATE для пользователя dbuser

\c dbname
GRANT USAGE ON SCHEMA dbschema TO dbuser;
GRANT INSERT,UPDATE ON ALL TABLES IN SCHEMA dbschema TO dbuser;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA dbschema TO dbuser;

Показать список пользователей

\du

или

SELECT u.usename AS "User Name" FROM pg_catalog.pg_user u;

Сменить владельца БД

ALTER DATABASE dbname OWNER TO new_onwer;

Показать список ролей

SELECT rolname FROM pg_roles;

Показать список схем

\dn

Показать список прав доступа

\dp

или

\dp *.*

Показать версию

SELECT version();

Показать имя текущей базы данных

SELECT current_database();

Соединения

Максимальное количество доступных соединений

SHOW max_connections;

Количество подключенных к серверу соединений

SELECT COUNT(*) FROM pg_stat_activity;

Установить лимит на количество соединений для конкретного пользователя

ALTER USER saphr WITH CONNECTION LIMIT 10;

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

SELECT rolname, rolconnlimit
FROM pg_roles;

Управление базой данных

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

\l

Структура БД

Список таблиц

\dt

Переименовать таблицу

ALTER TABLE old_table_name RENAME TO new_table_name;

Добавить столбец

ALTER TABLE public.user ADD COLUMN description text DEFAULT '';

Переименовать столбец

ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;

Получить список колонок в таблице

SELECT
    column_name,
    data_type
FROM
    information_schema.columns
WHERE
  table_name = 'remizoffalex';

Резервное копирование

Резервное копирование

https://www.postgresql.org/docs/9.5/static/backup.html

pg_dump -c -h 127.0.0.1 -U dbuser dbname > ./dump.sql

Только структуру базы

pg_dump -c -h 127.0.0.1 -U dbuser -s dbname > ./dump.sql

Восстановление

cat dump.sql | psql -h 127.0.0.1 dbname dbuser
psql -h 127.0.0.1 dbname dbuser < dump.sql

Перенос дампа между базами и/или хостами

pg_dump -h host1 dbname | psql -h host2 dbname

Перенос структуры базы данных без переноса самих данных