.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "ALTER DOMAIN" "" "2007-05-04" "SQL - 言語" "SQLコマンド"
.SH NAME
ALTER DOMAIN \- ドメイン定義を変更する

.SH SYNOPSIS
.sp
.nf
ALTER DOMAIN \fIname\fR
    { SET DEFAULT \fIexpression\fR | DROP DEFAULT }
ALTER DOMAIN \fIname\fR
    { SET | DROP } NOT NULL
ALTER DOMAIN \fIname\fR
    ADD \fIdomain_constraint\fR
ALTER DOMAIN \fIname\fR
    DROP CONSTRAINT \fIconstraint_name\fR [ RESTRICT | CASCADE ]
ALTER DOMAIN \fIname\fR
    OWNER TO \fInew_owner\fR 
ALTER DOMAIN \fIname\fR
    SET SCHEMA \fInew_schema\fR 
  
.sp
.fi
.SH "説明"
.PP
\fBALTER DOMAIN\fRは既存ドメインの定義を変更します。
以下に示す副構文があります。
.TP
\fBSET/DROP DEFAULT\fR
この構文はドメインのデフォルト値の設定または削除を行います。
指定したデフォルト値は、その後の\fBINSERT\fRコマンドのみに適用されることに注意してください。
そのドメインを使用したテーブルの既存の行には影響を与えません。
.TP
\fBSET/DROP NOT NULL\fR
この構文はドメインがNULL値を持つことができるかどうかを変更します。
SET NOT NULLを実行できるのは、ドメインを使用する列にNULL値が含まれていない場合のみです。
.TP
\fBADD \fIdomain_constraint\fB\fR
この構文はCREATE DOMAIN [\fBcreate_domain\fR(l)]と同一の構文を使って、ドメインに新しい制約を付与します。
ドメインを使用する全ての列が新しい制約を満たす場合のみ成功します。
.TP
\fBDROP CONSTRAINT\fR
この構文はドメイン上の制約を削除します。
.TP
\fBOWNER\fR
この構文はドメインの所有者を指定したユーザに変更します。
.TP
\fBSET SCHEMA\fR
この構文はドメインのスキーマを変更します。
ドメインに関連する制約はすべて新しいスキーマに移動します。
.PP
\fBALTER DOMAIN\fRを使用するにはドメインを所有していなければなりません。
ドメインのスキーマを変更するには、新しいスキーマにおけるCREATE権限を持たなければなりません。
所有者を変更するには、直接または間接的に新しいロールのメンバでなければなりません。
また、そのロールがドメインのスキーマにおいてCREATEを持たなければなりません。
（この制限により、強制的に、所有者の変更がドメインの削除と再作成で行うことができない何らかの処理を行わないようになります。
しかし、スーパーユーザはすべてのドメインの所有者を変更することができます。）
.PP
.SH "パラメータ"
.PP
.TP
\fB\fIname\fB\fR
変更対象となる既存のドメインの名前です（スキーマ修飾名も可）。
.TP
\fB\fIdomain_constraint\fB\fR
ドメイン用の新しいドメイン制約です。
.TP
\fB\fIconstraint_name\fB\fR
削除する既存の制約名です。
.TP
\fBCASCADE\fR
その制約に依存するオブジェクトを自動的に削除します。
.TP
\fBRESTRICT\fR
依存するオブジェクトがある場合、制約の削除要求を拒否します。
これがデフォルトの動作です。
.TP
\fB\fInew_owner\fB\fR
ドメインの新しい所有者となるユーザの名前です。
.TP
\fB\fInew_schema\fB\fR
ドメインの新しいスキーマです。
.PP
.SH "例"
.PP
ドメインにNOT NULL制約を付与します。
.sp
.nf
ALTER DOMAIN zipcode SET NOT NULL;
   
.sp
.fi
ドメインからNOT NULL制約を削除します。
.sp
.nf
ALTER DOMAIN zipcode DROP NOT NULL;
   
.sp
.fi
.PP
ドメインにCHECK制約を付与します。
.sp
.nf
ALTER DOMAIN zipcode ADD CONSTRAINT zipchk CHECK (char_length(VALUE) = 5);
   
.sp
.fi
.PP
ドメインからCHECK制約を削除します。
.sp
.nf
ALTER DOMAIN zipcode DROP CONSTRAINT zipchk;
   
.sp
.fi
.PP
ドメインを新しいスキーマに移動します。
.sp
.nf
ALTER DOMAIN zipcode SET SCHEMA customers;
   
.sp
.fi
.SH "互換性"
.PP
\fBALTER DOMAIN\fR文は標準SQLに準拠しています。
ただし、OWNER構文およびSET SCHEMA構文はPostgreSQLの拡張です。
.SH "関連項目"
CREATE DOMAIN [\fBcreate_domain\fR(l)], DROP DOMAIN [\fBdrop_domain\fR(l)]
