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

# ALTER INDEX

## 名前

ALTER INDEX -- インデックス定義を変更する

## 概要

    ALTER INDEX name RENAME TO new_name
    ALTER INDEX name SET TABLESPACE tablespace_name
    ALTER INDEX name SET ( storage_parameter = value [, ... ] )
    ALTER INDEX name RESET ( storage_parameter [, ... ] )

## 説明

`ALTER INDEX`は既存のインデックスの定義を変更します。 以下のような副構文が存在します。

`RENAME`

  この`RENAME`構文は、インデックスの名前を変更します。 格納されたデータには影響しません。

`SET TABLESPACE`

  この構文は、インデックスのテーブル空間を指定したテーブル空間に変更し、インデックスに関連する（複数の）データファイルを移動します。 CREATE TABLESPACEも参照してください。

`SET ( `storage_parameter` = `value` [, ... ] )`

  この構文は、インデックスに対し、インデックスメソッド固有の1つ以上の格納パラメータを変更します。 設定可能なパラメータについてはCREATE INDEXを参照してください。 このコマンドにより、インデックスの内容は即座に変更されないことに注意してください。 パラメータによりますが、予定の効果を得るためにREINDEXを使用してインデックスを再構築しなければならない場合もあります。

`RESET ( `storage_parameter` [, ... ] )`

  この構文は、1つ以上のインデックスメソッド固有の格納パラメータをデフォルト値に再設定します。 `SET`同様、インデックスを完全に更新するために`REINDEX`が必要になる場合があります。

## パラメータ

`name`

  変更対象の既存のインデックスの名前です（スキーマ修飾名も可）。

`new_name`

  インデックスの新しい名前です。

`tablespace_name`

  インデックスの移動先のテーブル空間です。

`storage_parameter`

  インデックスメソッド固有の格納パラメータの名前です。

`value`

  インデックスメソッド固有の格納パラメータの新しい値です。 パラメータに応じてこれが数値になることも文字列になることもあります。

## 注釈

これらの操作はALTER TABLEを使用して行うこともできます。 実際には、`ALTER INDEX`は、`ALTER TABLE`のインデックス用構文の別名に過ぎません。

以前は`ALTER INDEX OWNER`という種類の構文がありましたが、（警告の上）無視されるようになりました。 インデックスの所有者は基のテーブルの所有者と異なるものにすることができません。 テーブルの所有者を変更すると自動的にインデックスの所有者も変わります。

システムカタログ用インデックスに対する変更は許されていません。

## 例

既存のインデックスの名前を変更します。

    ALTER INDEX distributors RENAME TO suppliers;

インデックスを別のテーブル空間に移動します。

    ALTER INDEX distributors SET TABLESPACE fasttablespace;

インデックスのフィルファクタを変更します（インデックスメソッドがフィルファクタをサポートしていることを仮定します）。

    ALTER INDEX distributors SET (fillfactor = 75);
    REINDEX INDEX distributors;

## 互換性

`ALTER INDEX`はPostgreSQLの拡張です。

## 関連項目

CREATE INDEX, REINDEX

前のページ | ホーム | 次のページ
ALTER GROUP | 上に戻る | ALTER LANGUAGE