.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "ALTER DOMAIN" "" "2004-06-19" "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 
  
.sp
.fi
.SH "説明"
.PP
\fBALTER DOMAIN\fR は既存ドメインの定義を変更します。
以下に示す複数の副形式があります。
.TP
\fBSET/DROP DEFAULT\fR
これらの形式はドメインのデフォルト値の設定もしくは削除を行います。
デフォルトは、その後の\fBINSERT\fRコマンドのみに適用されることに注意してください。
そのドメインを使用したテーブル中の既存行には影響を与えません。
.TP
\fBSET/DROP NOT NULL\fR
これらの形式は、ドメインをNULL値を持つことができるかNULL値を拒絶するかどちらにするかを印付けます。
このドメインを使用する列にはNULL値が含まれない場合のみ SET NOT NULL を行う子とができます。
.TP
\fBADD \fIdomain_constraint\fB\fR
この形式は、CREATE DOMAIN [\fBcreate_domain\fR(l)]同様の構文を使用して、ドメインに新しい制約を付与します。
このドメインを使用する全ての列が新しい制約を満たす場合にのみ、これは成功します。
.TP
\fBDROP CONSTRAINT\fR
この形式は、ドメイン上の制約を削除します。
.TP
\fBOWNER\fR
この形式は、ドメインの所有者を指定したユーザに変更します。
.PP
\fBALTER DOMAIN\fRを使用するためにはドメインを所有していなければなりません。
ただし、\fBALTER DOMAIN OWNER\fRはスーパーユーザのみが実行可能です。
.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
ドメインの新しい所有者となるユーザの名前です。
.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
.SH "互換性"
.PP
\fBALTER DOMAIN\fR文はSQL99に準拠しています。
ただし、OWNER構文はPostgreSQL の拡張です。
