ALTER DATABASE
Изменяет атрибуты базы данных.
Синтаксис
ALTER DATABASE <name> [ WITH CONNECTION LIMIT <connlimit> ]
ALTER DATABASE <name> RENAME TO <new_name>
ALTER DATABASE <name> OWNER TO <new_owner>
ALTER DATABASE <name> SET TABLESPACE <new_tablespace>
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.
Суперпользователи автоматически обладают всеми этими привилегиями.
Четвертая форма изменяет табличное пространство (tablespace) по умолчанию для базы данных. Это может сделать только владелец базы данных или суперпользователь; вы также должны иметь права на создание в новом табличном пространстве. Эта команда физически перемещает все таблицы или индексы в старом табличном пространстве по умолчанию базы данных в новое табличное пространство. Обратите внимание, что таблицы и индексы в табличных пространствах, не используемых по умолчанию, не затрагиваются.
Оставшиеся формы изменяют значение по умолчанию для переменной конфигурации базы данных PostgreSQL, действующей в рамках сеанса.
Всякий раз, когда в этой базе данных впоследствии запускается новый сеанс, указанное значение становится значением по умолчанию для сеанса.
Установленное для конкретной базы данных значение по умолчанию переопределяет любую настройку, присутствующую в postgresql.conf или полученную из командной строки postgres.
Только владелец базы данных или суперпользователь могут изменить значения по умолчанию для сеанса базы данных.
Некоторые переменные не могут быть установлены таким образом или могут быть установлены только суперпользователем.
Параметры
| Параметр | Описание |
|---|---|
name |
Имя базы данных, атрибуты которой необходимо изменить |
connlimit |
Сколько одновременных подключений может быть установлено к этой базе данных.
Значение |
new_name |
Новое имя базы данных |
new_owner |
Новый владелец базы данных |
new_tablespace |
Новое табличное пространство по умолчанию для базы данных |
configuration_parameter |
Присваивает указанному параметру конфигурации в рамках сеанса в этой базе данных заданное значение по умолчанию.
Если значение |
Примечания
Также можно привязать параметры сеанса не к базе данных, а к определенной роли; см. ALTER ROLE.
В случае конфликта параметры на уровне роли переопределяют параметры на уровне базы данных.
Примеры
Чтобы по умолчанию отключить сканирование по индексам в базе данных test, выполните:
ALTER DATABASE test SET enable_indexscan TO off;
Совместимость
Оператор ALTER DATABASE является расширением PostgreSQL.