Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
データベース内にドメインを作成します。
CREATE { DOMAIN | DATATYPE } [ AS ] domain-name data-type [ [ NOT ] NULL ] [ DEFAULT default-value ] [ CHECK ( condition ) ]
domain-name : identifier
data-type : built-in data type, with precision and scale
DOMAIN | DATATYPE 句 CREATE DOMAIN は SQL/2008 標準で定義されているため、CREATE DATATYPE ではなく、CREATE DOMAIN を使用することをおすすめします。
NULL 句 この句を使用すると、ドメインに NULL 入力可かどうかを指定できます。ドメインを使用してカラムを定義する場合、NULL 入力可かどうかは次のようにして決まります。
カラム定義で指定された Null 入力可能。
ドメイン定義で指定された Null 入力可能。
NULL 入力属性がカラム定義とドメイン定義のどちらでも明示的に指定されていない場合、allow_nulls_by_default オプションの設定が使用されます。
CHECK 句 検査制約を使用してドメインを作成する場合は、検査制約の検索条件の中に @ 記号のプレフィクスを持つ変数名を使用できます。データ型をカラムの定義内で使う場合、このような変数をカラム名に置き換えます。これにより、そのドメインで定義された各テーブルにドメインの検査制約を適用することができます。
ドメインは、必要に応じて精度と小数点以下の桁数を含めた組み込みデータ型のエイリアスです。データベース内の使いやすさを改善し、一貫性を高めます。
ドメインはデータベース内のオブジェクトです。名前を付けるには識別子のルールに従います。ドメインは、大文字と小文字を区別しません。組み込みデータ型名の場合と同じです。
データ型を作成するユーザーは、自動的にそのデータ型の所有者となります。CREATE DATATYPE 文の中では、所有者を指定できません。ドメイン名はユニークにします。また、すべてのユーザーはプレフィクスとして所有者を使わなくてもデータ型にアクセスできます。
ドメインは、CHECK 条件と DEFAULT 値を持つことができ、ユーザー側でそのデータ型が NULL 値を使えるかどうかを指定できます。これらの条件と値は、ドメインで定義するカラムによって継承されます。カラム定義で明示的に指定された条件または値は、ドメイン型に指定された条件または値を上書きします。
データベースからドメインを削除するには、DROP DOMAIN 文を使用します。ドメインを削除するには、ドメインの所有者であるか、DBA 権限が必要です。
RESOURCE 権限。
オートコミット。
SQL/2008 ドメインのサポートは、SQL/2008 標準のオプションの SQL 言語機能 F251 です。
次の文は、35 文字の文字列を保持し、NULL が使用できる address という名前のドメインを作成します。
CREATE DOMAIN address CHAR( 35 ) NULL;
次の文は、NULL は使用できず、デフォルトでオートインクリメントされる ID という名前のドメインを作成します。
CREATE DOMAIN ID INT NOT NULL DEFAULT AUTOINCREMENT;
次の文は、検査制約で正規表現を使用する PhoneNumber という名前のドメインを作成します。これは、文字列が、ダッシュまたは空白で区切られた 3 桁の市外局番、3 桁の局番、4 桁の電話番号で構成される、正しくフォーマットされた 12 文字の北米地域の電話番号であることを確認するためのものです。
CREATE DOMAIN PhoneNumber CHAR(12) NULL CHECK( @PhoneNumber REGEXP '([2-9][0-9]{2}-[2-9][0-9]{2}-[0-9]{4})|([2-9][0-9]{2}\s[2-9][0-9]{2}\s[0-9]{4})');