テーブル上の既存の検査制約を変更するには、いくつかの方法があります。
テーブルまたはカラムに新しい検査制約を追加できます。
カラムの検査制約を NULL に設定すると削除できます。次に、Customers テーブルの Phone カラムから検査制約を削除する文の例を示します。
ALTER TABLE Customers ALTER Phone CHECK NULL; |
検査制約の追加と同じ方法で、カラムの検査制約を置換できます。次に、Customers テーブルの Phone カラムの検査制約を追加または置換する文の例を示します。
ALTER TABLE Customers ALTER Phone CHECK ( Phone LIKE '___-___-____' ); |
テーブルに定義された検査制約を変更できます。
ALTER TABLE と ADD table-constraint 句を使って新しい検査制約を追加できます。
制約名を定義済みの場合は、制約を個別に変更できます。
制約名を定義していない場合は、ALTER TABLE DELETE CHECK を使って、既存のすべての検査制約 (カラム検査制約、ドメインから継承した検査制約など) を削除してから、新しい検査制約を追加できます。
ALTER TABLE 文で DELETE CHECK 句を使用するには、次のように指定します。
ALTER TABLE table-name DELETE CHECK; |
Sybase Central では、テーブル検査制約とカラム検査制約の両方を追加、変更、削除できます。
テーブルからカラムを削除しても、そのカラムと関連付けられていた検査制約はテーブル制約から削除されません。制約を削除しないと、テーブルに対してデータの挿入や、単に問い合わせを行っただけでもエラーメッセージが生成されます。
テーブル検査制約は FALSE が返された場合にエラーとなります。UNKNOWN が返されても、動作は TRUE が返される場合と同じで、その値が受け入れられます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |