ALTER DATABASE#
ALTER DATABASE
ALTER DATABASE — изменить базу данных
Синтаксис
ALTER DATABASEname
[ [ WITH ]option
[ ... ] ] whereoption
can be: ALLOW_CONNECTIONSallowconn
CONNECTION LIMITconnlimit
IS_TEMPLATEistemplate
ALTER DATABASEname
RENAME TOnew_name
ALTER DATABASEname
OWNER TO {new_owner
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER DATABASEname
SET TABLESPACEnew_tablespace
ALTER DATABASEname
REFRESH COLLATION VERSION ALTER DATABASEname
SETconfiguration_parameter
{ TO | = } {value
| DEFAULT } ALTER DATABASEname
SETconfiguration_parameter
FROM CURRENT ALTER DATABASEname
RESETconfiguration_parameter
ALTER DATABASEname
RESET ALL
Описание
ALTER DATABASE
изменяет атрибуты базы данных.
Первая форма изменяет определенные настройки для каждой базы данных. (См. ниже для получения более подробной информации). Только владелец базы данных или суперпользователь может изменять эти настройки.
Вторая форма изменяет имя базы данных. Изменить имя базы данных может только владелец базы данных или суперпользователь; владельцы, не являющиеся суперпользователями, также должны иметь привилегию CREATEDB
. Текущую базу данных нельзя переименовать. (Подключитесь к другой базе данных, если вам нужно это сделать).
Третья форма изменяет владельца базы данных.
Чтобы изменить владельца, вы должны иметь возможность SET ROLE
на
новую роль владельца, и вы должны иметь привилегию
CREATEDB
.
(Обратите внимание, что суперпользователи автоматически имеют все эти привилегии.)
Четвертая форма изменяет таблицу по умолчанию базы данных. Это может сделать только владелец базы данных или суперпользователь; также необходимо иметь привилегии создания для новой таблицы. Эта команда физически перемещает любые таблицы или индексы из старой таблицы по умолчанию базы данных в новую таблицу. Новая таблица по умолчанию должна быть пустой для этой базы данных, и никто не должен быть подключен к базе данных. Таблицы и индексы в нестандартных таблицах не затрагиваются.
Оставшиеся формы изменяют значение сессии по умолчанию для переменной конфигурации времени выполнения базы данных Tantor BE. Когда в этой базе данных запускается новая сессия, указанное значение становится значением по умолчанию для сессии. Специфическое для базы данных значение по умолчанию переопределяет любую настройку, присутствующую в файле 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 и Глава 18 для получения дополнительной информации о допустимых именах параметров и их значениях.
Примечания
Также возможно привязать значение сессии по умолчанию к определенной роли, а не к базе данных; см. ALTER ROLE. Если возникает конфликт, настройки, специфичные для роли, переопределяют настройки, специфичные для базы данных.
Примеры
Для отключения сканирования индексов по умолчанию в базе данных test
:
ALTER DATABASE test SET enable_indexscan TO off;
Совместимость
Команда ALTER DATABASE
является расширением Tantor BE.