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

# ALTER DOMAIN

## 名前

ALTER DOMAIN -- ドメイン定義の変更

## 概要

    ALTER DOMAIN name
        { SET DEFAULT expression | DROP DEFAULT }
    ALTER DOMAIN name
        { SET | DROP } NOT NULL
    ALTER DOMAIN name
        ADD domain_constraint
    ALTER DOMAIN name
        DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
    ALTER DOMAIN name
        OWNER TO new_owner

## 説明

`ALTER DOMAIN`は既存ドメインの定義を変更します。 以下に示す複数の副形式があります。

SET/DROP DEFAULT

  これらの形式はドメインのデフォルト値の設定もしくは削除を行います。 デフォルトは、その後の`INSERT`コマンドのみに適用されることに注意してください。 そのドメインを使用したテーブルにある既存の行には影響を与えません。

SET/DROP NOT NULL

  これらの形式は、ドメインがNULL値を持つことができるかNULL値を拒絶するかどちらにするかを印付けます。 このドメインを使用する列にはNULL値が含まれない場合のみ`SET NOT NULL`を行うことができます。

ADD `domain_constraint`

  この形式は、CREATE DOMAIN同様の構文を使用して、ドメインに新しい制約を付与します。 このドメインを使用する全ての列が新しい制約を満たす場合にのみ、これは成功します。

DROP CONSTRAINT

  この形式は、ドメイン上の制約を削除します。

OWNER

  この形式は、ドメインの所有者を指定したユーザに変更します。

`ALTER DOMAIN`を使用するためにはドメインを所有していなければなりません。 ただし、`ALTER DOMAIN OWNER`はスーパーユーザのみが実行可能です。

## パラメータ

`name`

  変更する既存のドメインの名前です。(スキーマ修飾名も可。)

`domain_constraint`

  ドメイン用の新しいドメイン制約です。

`constraint_name`

  削除する既存の制約名です。

`CASCADE`

  その制約に依存するオブジェクトを自動的に削除します。

`RESTRICT`

  依存するオブジェクトがあると、制約の削除要求を拒否します。 これがデフォルトの動作です。

`new_owner`

  ドメインの新しい所有者となるユーザの名前です。

## 例

ドメインに`NOT NULL`制約を付与します。

    ALTER DOMAIN zipcode SET NOT NULL;

ドメインから`NOT NULL`制約を削除します。

    ALTER DOMAIN zipcode DROP NOT NULL;

ドメインに CHECK制約を付与します。

    ALTER DOMAIN zipcode ADD CONSTRAINT zipchk CHECK (char_length(VALUE) = 5);

ドメインからCHECK制約を削除します。

    ALTER DOMAIN zipcode DROP CONSTRAINT zipchk;

## 互換性

`ALTER DOMAIN`文はSQL:1999に準拠しています。 ただし、`OWNER`構文はPostgreSQLの拡張です。

前のページ | ホーム | 次のページ
ALTER DATABASE | 上に戻る | ALTER FUNCTION