Перейти к основному содержимому

ALTER DATABASE

примечание

Эта страница переведена при помощи нейросети GigaChat.

ALTER DATABASE – изменение базы данных.

Синтаксис

ALTER DATABASE name [ [ WITH ] option [ ... ] ]

where option can be:

ALLOW_CONNECTIONS allowconn
CONNECTION LIMIT connlimit
IS_TEMPLATE istemplate

ALTER DATABASE name RENAME TO new_name

ALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER DATABASE name SET TABLESPACE new_tablespace

ALTER DATABASE name REFRESH COLLATION VERSION

ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name SET configuration_parameter FROM CURRENT
ALTER DATABASE name RESET configuration_parameter
ALTER DATABASE name RESET ALL

Описание

ALTER DATABASE изменяет атрибуты базы данных.

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

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

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

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

Оставшиеся формы изменяют сеансовую настройку по умолчанию для переменной конфигурации времени выполнения для базы данных PostgreSQL. Всякий раз, когда впоследствии начинается новая сессия в этой базе данных, указанное значение становится значением по умолчанию для сессии. Специфичная для базы данных настройка по умолчанию заменяет любую настройку, присутствующую в postgresql.conf или полученную из командной строки postgres. Только владелец базы данных или суперпользователь могут изменять параметры сеанса для базы данных. Некоторые переменные нельзя установить таким образом или их может установить только суперпользователь.

Параметры

name
Имя базы данных, атрибуты которой должны быть изменены.
allowconn
Если false, то никто не сможет подключиться к этой базе данных.
connlimit
Сколько одновременных соединений может быть установлено с этой базой данных. -1 означает отсутствие ограничений.
istemplate
Если истина, то эта база данных может быть клонирована любым пользователем с привилегиями CREATEDB. Если ложь, то только суперпользователи или владелец базы данных могут клонировать ее.
new_name
Новое имя базы данных.
new_owner
Новый владелец базы данных.
new_tablespace
Новая таблица пространства базы данных по умолчанию.

Эта форма команды не может быть выполнена внутри блока транзакций.

REFRESH COLLATION VERSION
Обновление версии сопоставления базы данных.
configuration_parameter
value
Установка значения по умолчанию сессии этой базы данных для указанного параметра конфигурации на заданное значение. Если значение равно DEFAULT или, в качестве эквивалента, используется RESET, то настройка для конкретной базы данных удаляется, и в новых сеансах будет наследоваться общесистемная настройка по умолчанию. Используйте RESET ALL, чтобы удалить все настройки, относящиеся к конкретной базе данных. SET FROM CURRENT сохраняет текущее значение параметра в сеансе как значение для конкретной базы данных.

Смотрите SET и раздел «Конфигурация сервера» для получения дополнительной информации о разрешенных именах параметров и значениях.

Примечания

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

Примеры

Отключение сканирования индексов по умолчанию в базе данных test:

ALTER DATABASE test SET enable_indexscan TO off;

Совместимость

Команда ALTER DATABASE является расширением PostgreSQL.

Смотрите также

CREATE DATABASE, DROP DATABASE, SET, CREATE TABLESPACE