Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースの作成 » データ整合性の確保 » テーブル制約とカラム制約の使い方

 

ドメインのカラム検査制約の継承

ドメインに検査制約を付加できます。そのドメインで定義されたカラムには、検査制約も継承されます。そのカラムに明示的に検査制約を設定した場合は、ドメインよりも優先されます。たとえば、このドメイン定義における CHECK 句は、カラムに挿入される値は正の整数だけであることを要求します。

CREATE DATATYPE posint INT
CHECK ( @col > 0 );

posint ドメインを使用して定義されたカラムは、検査制約が明示的に指定されていないかぎり、正の整数だけを受け付けます。@ 記号のプレフィクスを持つ変数はすべて、検査制約が評価される時点でそのカラムの名前に置き換えられるので、@ 記号のプレフィクスさえあれば @col 以外の変数名を使用しても問題ありません。

ALTER TABLE 文と DELETE CHECK 句を組み合せると、ドメインから継承されたものを含め、テーブル定義からすべての検査制約を削除できます。

ドメインでカラムが定義されたあとに、ドメイン定義の制約が変更された場合は、そのカラムに変更は適用されません。カラムは作成時にドメインの制約を継承しますが、それ以降は、両者の間に関係はありません。

参照