DOMAINは既存ドメインの定義を変更します。以下に示す副構文があります。DEFAULTこの構文はドメインのデフォルト値の設定または削除を行います。指定したデフォルト値は、その後のINSERTコマンドのみに適用されることに注意してください。そのドメインを使用したテーブルの既存の行には影響を与えません。NULLこの構文はドメインがNULL値を持つことができるかどうかを変更します。NULLを実行できるのは、ドメインを使用する列にNULL値が含まれていない場合のみです。DOMAINと同一の構文を使って、ドメインに新しい制約を付与します。新しい制約がドメインに追加された時、そのドメインを使用するすべての列が新しく追加された制約に対して検査されます。VALIDオプションを使用して新しい制約を追加することでこれらの検査を抑制することができます。CONSTRAINTを使用することで、後で制約を有効にすることができます。VALIDと印が付いていたとしても、常にすべての制約が検査されます。VALIDはCHECK制約でのみ受け付けられます。]この構文はドメイン上の制約を削除します。EXISTSが指定された場合、制約が存在しなくてもエラーになりません。この場合は代わりに注意メッセージが発生します。CONSTRAINTこの構文はドメイン上の制約名を変更します。VALIDとして追加された制約を検証します。そのドメインを使用する列の中のすべてのデータが指定された制約を満たすかどうかを検証します。OWNERこの構文はドメインの所有者を指定したユーザに変更します。RENAMEこの構文はドメインの名前を変更します。SCHEMAこの構文はドメインのスキーマを変更します。ドメインに関連する制約もすべて新しいスキーマに移動します。DOMAINを使用するにはドメインを所有していなければなりません。ドメインのスキーマを変更するには、新しいスキーマにおけるCREATE権限を持たなければなりません。所有者を変更するには、直接または間接的に新しいロールのメンバでなければなりません。そのロールはドメインのスキーマにおいてCREATEを持たなければなりません。(この制限により、所有者の変更により、ドメインの削除と再作成でできないことは何もできないようにしています。スーパーユーザはすべてのドメインの所有者を変更することができます。)パラメータname変更対象となる既存のドメインの名前です(スキーマ修飾名も可)。domain_constraintドメイン用の新しいドメイン制約です。constraint_name削除または名前を変更する既存の制約名です。VALID既存の列について制約の妥当性を検証しません。依存関係の追跡参照)。RESTRICT依存するオブジェクトがある場合、制約の削除要求を拒否します。これがデフォルトの動作です。new_nameドメインの新しい名前です。new_constraint_name制約の新しい名前です。new_ownerドメインの新しい所有者となるユーザの名前です。new_schemaドメインの新しいスキーマです。NULLは、検証された指定ドメインまたは任意の派生ドメインがデータベース内のいずれかのテーブルの複合型の列で使用されていた場合、失敗します。これは将来的には、こうした入れ子になった列に対する新しい制約を検証できるように改良されるべきです。NULL制約を付与します。NULL制約を削除します。NULL;ドメインにCHECK制約を付与します。5);ドメインからCHECK制約を削除します。zipchk;ドメイン上の検査制約の名前を変更します。zip_check;ドメインを新しいスキーマに移動します。DOMAIN文は標準SQLに準拠しています。CONSTRAINT構文は例外で、PostgreSQLの拡張です。VALID句もPostgreSQLの拡張です。