PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# ALTER DATABASE

## 名前

ALTER DATABASE -- データベースを変更する

## 概要

    ALTER DATABASE name [ [ WITH ] option [ ... ] ]

    ここでoptionは以下の通りです。

        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`はデータベースの属性を変更します。

最初の構文はデータベース毎の設定を変更します。 （詳細は後述します。） データベース所有者とスーパーユーザのみがこの設定を変更することができます。

2番目の構文は、データベースの名前を変更します。 データベースの名前を変更できるのは、データベースの所有者またはスーパーユーザのみです。 ただし、スーパーユーザではない所有者は`CREATEDB`権限を所有していなければなりません。 現在のデータベースの名前を変更することはできません（必要ならば、別のデータベースに接続してください）。

3番目の構文は、データベースの所有者を変更します。 所有者を変更するにはデータベースを所有し、かつ、新しい所有者ロールの間接的あるいは直接的なメンバでなければなりません。 さらに、`CREATEDB`権限も持たなければなりません。 （スーパーユーザはこれらの権限を自動的に持っていることに注意してください。）

4番目の構文は、データベースのデフォルトのテーブル空間を変更します。 データベースの所有者またはスーパーユーザのみがこれを行うことができます。 また、新しいテーブル空間における作成権限を持つ必要があります。 このコマンドはデータベースの古いデフォルトのテーブル空間から新しいテーブル空間にテーブルまたはインデックスを物理的にすべて移動します。 デフォルト以外のテーブル空間にあるテーブルまたはインデックスには影響がないことに注意してください。

残りの構文は、PostgreSQLデータベースにおける実行時設定変数のセッションのデフォルト値を変更します。 指定された値が、コマンド実行後にデータベースで開始される新規セッションのデフォルト値になります。 データベース固有のデフォルト値によって、`postgresql.conf`ファイルに記述されている設定や`postgres`コマンドラインから受け取った設定は上書きされます。 データベースにおけるセッションのデフォルト値を変更できるのは、データベースの所有者またはスーパーユーザのみです。 この方法では設定できない変数や、スーパーユーザのみが設定できる変数も存在します。

## パラメータ

`name`

  属性変更の対象となるデータベースの名前です。

`connlimit`

  データベースへの最大同時接続数です。 -1は無制限を意味します。

`new_name`

  新しいデータベース名です。

`new_owner`

  新しいデータベースの所有者です。

`new_tablespace`

  新しいデータベースのデフォルトのテーブル空間です。

`configuration_parameter`
`value`

  指定した設定パラメータについて、データベースのセッションのデフォルト値を指定した値に設定します。 `value`が`DEFAULT`の場合、あるいは等価な`RESET`が使用されている場合、データベース固有の設定は無効になり、新しいセッションではシステム全体のデフォルト設定が継承されます。 全てのデータベース固有の設定をクリアするには、`RESET ALL`を使用してください。 `SET FROM CURRENT`は、データベース固有の値としてセッションにおけるパラメータの現在値を保管します。

  設定可能なパラメータ名とその値に関する詳細についてはSETおよび第18章を参照してください。

## 注釈

データベースではなく特定のロールにセッションのデフォルト値を関連付けることもできます。 ALTER ROLEを参照してください。 設定が競合する場合には、ロール固有の設定により、データベース固有の設定が上書きされます。

## 例

`test`データベース内のインデックススキャンをデフォルトで無効にします。

    ALTER DATABASE test SET enable_indexscan TO off;

## 互換性

`ALTER DATABASE`文はPostgreSQLの拡張です。

## 関連項目

CREATE DATABASE, DROP DATABASE, SET, CREATE TABLESPACE

前のページ | ホーム | 次のページ
ALTER CONVERSION | 上に戻る | ALTER DEFAULT PRIVILEGES