ALTER DATABASE — изменение базы данных
ALTER DATABASEname[ [ WITH ]option[ ... ] ] гдеoptionможет быть: 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.
(Заметьте, что суперпользователи автоматически обладают всеми этими правами.)
Четвёртая форма изменяет табличное пространство по умолчанию для базы данных. Это может сделать только владелец базы данных или суперпользователь; вы также должны иметь право на создание объектов в новом табличном пространстве. Эта команда физически перемещает все таблицы или индексы, находящиеся в старом табличном пространстве по умолчанию для базы данных, в новое табличное пространство. Новое табличное пространство по умолчанию должно быть пустым для этой базы данных, и никто не должен быть подключён к этой базе данных. На таблицы и индексы в табличных пространствах, не используемых по умолчанию, это не влияет.
Оставшиеся формы изменяют значение по умолчанию на уровне сеанса для параметра конфигурации времени выполнения
базы данных Digital Q.DataBase.
При каждом последующем запуске нового сеанса в этой базе данных указанное значение становится
значением по умолчанию для сеанса.
Установка по умолчанию на уровне базы данных переопределяет значение, заданное в
postgresql.conf или переданное через командную строку
postgres. Изменять значения по умолчанию на уровне сеанса для базы данных
может только её владелец или суперпользователь. Некоторые переменные не могут быть установлены
таким образом или могут быть установлены только суперпользователем.
nameИмя базы данных, атрибуты которой нужно изменить.
allowconnЕсли ложно, то никто не может подключаться к этой базе данных.
connlimitМаксимальное количество одновременных подключений к этой базе данных. Значение -1 означает отсутствие ограничения.
istemplate
Если истина, то эту базу данных может клонировать любой пользователь с правами CREATEDB;
если ложно, то клонировать её могут только суперпользователи или владелец этой базы данных.
new_nameНовое имя базы данных.
new_ownerНовый владелец базы данных.
new_tablespaceНовое табличное пространство по умолчанию для базы данных.
Эта форма команды не может быть выполнена внутри блока транзакции.
REFRESH COLLATION VERSIONОбновить версию правил сортировки (колляции) базы данных. За подробностями обращайтесь к Примечания.
configuration_parametervalue
Установить значение по умолчанию на уровне сеанса для данного параметра конфигурации
в этой базе данных равным указанному значению. Если
value — это DEFAULT
или, что равносильно, используется RESET,
настройка на уровне базы данных удаляется, и в новых сеансах будет наследоваться
общесистемная настройка по умолчанию. Используйте RESET
ALL для очистки всех настроек на уровне базы данных.
SET FROM CURRENT сохраняет текущее значение параметра
в сеансе как настройку на уровне базы данных.
См. SET и Глава 3.4 для получения дополнительной информации о допустимых именах параметров и их значениях.
Также можно привязать настройку по умолчанию на уровне сеанса к конкретной роли, а не к базе данных; см. ALTER ROLE. В случае конфликта настройки на уровне роли переопределяют настройки на уровне базы данных.
Чтобы по умолчанию отключить сканирование по индексам в базе данных
test:
ALTER DATABASE test SET enable_indexscan TO off;
Оператор ALTER DATABASE является расширением
Digital Q.DataBase.