ALTER DATABASE

ALTER DATABASE — изменить базу данных


Синтаксис

ALTER DATABASE имя [ [ WITH ] параметр [ ... ] ]

где параметром может быть:

    ALLOW_CONNECTIONS разрешить_подключение
    CONNECTION LIMIT предел_подключений
    IS_TEMPLATE это_шаблон

ALTER DATABASE имя RENAME TO новое_имя

ALTER DATABASE имя OWNER TO { новый_владелец | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER DATABASE имя SET TABLESPACE новое_табличное_пространство

ALTER DATABASE имя REFRESH COLLATION VERSION

ALTER DATABASE имя SET параметр_конфигурации { TO | = } { значение | DEFAULT }
ALTER DATABASE имя SET параметр_конфигурации FROM CURRENT
ALTER DATABASE имя RESET параметр_конфигурации
ALTER DATABASE имя RESET ALL

Описание

Команда ALTER DATABASE изменяет атрибуты базы данных.

Первая форма команды изменяет определенные параметры на уровне базы данных. (Подробное описание см. ниже). Изменять эти параметры может только владелец соответствующей базы данных или суперпользователь.

Вторая форма команды изменяет имя базы данных. Переименовать базу данных может только владелец базы данных или суперпользователь; обычные пользователи должны также обладать правом CREATEDB. Переименовать текущую базу данных нельзя. (Если это нужно сделать, подключитесь к другой базе данных.)

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

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

Остальные формы данной команды изменяют сеансовое значение по умолчанию у конфигурационной переменной времени выполнения для базы данных QHB. При последующем запуске нового сеанса в этой базе данных указанное значение становится значением по умолчанию. Заданные для базы данных значения по умолчанию переопределяют любые значения из qhb.conf или полученные из командной строки qhb. Только владелец базы данных и суперпользователь могут изменить для базы данных сеансовые значения по умолчанию. Некоторые переменные таким образом установить нельзя, либо их может установить только суперпользователь.


Параметры

имя

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

разрешить_подключение

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

предел_подключений

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

это_шаблон

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

новое_имя

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

новый_владелец

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

новое_табличное_пространство

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

REFRESH COLLATION VERSION

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

параметр_конфигурации
значение

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

Дополнительную информацию о допустимых именах и значениях параметров см. на справочной странице команды SET и в главе Конфигурация сервера.


Примечания

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


Примеры

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

ALTER DATABASE test SET enable_indexscan TO off;

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

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


См. также

CREATE DATABASE, DROP DATABASE, SET, CREATE TABLESPACE