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

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » データ整合性 » テーブルとカラム制約

 

ドメインから継承されるカラム検査制約

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

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

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

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

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

 参照