ALTER DATABASE#

ALTER DATABASE

ALTER DATABASE

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. Текущую базу данных нельзя переименовать. (Подключитесь к другой базе данных, если вам нужно это сделать).

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

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

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

Параметры

name

Имя базы данных, атрибуты которой должны быть изменены.

allowconn

Если значение false, то никто не сможет подключиться к этой базе данных.

connlimit

Сколько одновременных соединений может быть установлено с этой базой данных. -1 означает отсутствие ограничений.

istemplate

Если значение true, то эту базу данных можно клонировать любым пользователем с привилегиями CREATEDB; если значение false, то ее можно клонировать только суперпользователям или владельцу базы данных.

new_name

Новое имя базы данных.

new_owner

Новый владелец базы данных.

new_tablespace

Новое значение таблицы по умолчанию для базы данных.

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

REFRESH COLLATION VERSION

Обновите версию правила сортировки базы данных. См. Notes для получения дополнительной информации.

configuration_parameter
value

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

См. SET и Глава 19 для получения дополнительной информации о допустимых именах параметров и их значениях.

Примечания

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

Примеры

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

ALTER DATABASE test SET enable_indexscan TO off;

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

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