ALTER DATABASE

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


Синтаксис

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

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

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

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

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

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

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

Описание

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

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

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

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

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

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


Параметры

имя

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

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

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

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

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

это_шаблон

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

новое_имя

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

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

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

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

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

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

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

Устанавливает сеансовое значение по умолчанию для указанного параметра конфигурации. Если значение равно 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