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文はSQL99に準拠しています。 ただし、OWNER構文はPostgreSQL の拡張です。