ALTER DATABASE#
ALTER DATABASE
ALTER DATABASE — изменить базу данных
Синтаксис
ALTER DATABASEname[ [ WITH ]option[ ... ] ] whereoptioncan be: ALLOW_CONNECTIONSallowconnCONNECTION LIMITconnlimitIS_TEMPLATEistemplateALTER DATABASEnameRENAME TOnew_nameALTER DATABASEnameOWNER TO {new_owner| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER DATABASEnameSET TABLESPACEnew_tablespaceALTER DATABASEnameREFRESH COLLATION VERSION ALTER DATABASEnameSETconfiguration_parameter{ TO | = } {value| DEFAULT } ALTER DATABASEnameSETconfiguration_parameterFROM CURRENT ALTER DATABASEnameRESETconfiguration_parameterALTER DATABASEnameRESET ALL
Описание
ALTER DATABASE изменяет атрибуты базы данных.
Первая форма изменяет определенные настройки для каждой базы данных. (См. ниже для получения более подробной информации). Только владелец базы данных или суперпользователь может изменять эти настройки.
Вторая форма изменяет имя базы данных. Изменить имя базы данных может только владелец базы данных или суперпользователь; владельцы, не являющиеся суперпользователями, также должны иметь привилегию CREATEDB. Текущую базу данных нельзя переименовать. (Подключитесь к другой базе данных, если вам нужно это сделать).
Третья форма изменяет владельца базы данных.
Чтобы изменить владельца, вы должны иметь возможность SET ROLE на
новую роль владельца, и вы должны иметь привилегию
CREATEDB.
(Обратите внимание, что суперпользователи автоматически имеют все эти привилегии.)
Четвёртая форма изменяет табличное пространство по умолчанию для базы данных. Только владелец базы данных или суперпользователь может произвести это изменение; также вы должны иметь право на создание в новом табличном пространстве. Эта команда физически перемещает все таблицы или индексы из старого табличного пространства по умолчанию в новое табличное пространство. Новое табличное пространство по умолчанию должно быть пустым для этой базы данных, и никто не должен быть подключён к базе данных. Таблицы и индексы, находящиеся в табличных пространствах не по умолчанию, не затрагиваются. Метод, используемый для копирования файлов в новое табличное пространство, определяется параметром file_copy_method.
Оставшиеся формы изменяют значение сессии по умолчанию для переменной конфигурации времени выполнения базы данных 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_parametervalueУстановите значение сессии по умолчанию для указанного параметра конфигурации этой базы данных на заданное значение. Если
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.