Advertisements
CHECK制約では、レコードに入力されている値を確認する条件を指定します。 条件が false と評価された場合、そのレコードは制約に違反し、テーブルに入力されません。
例
たとえば、次のプログラムは、CUSTOMERS という新しいテーブルを作成し、5つの列を追加します。 ここでは、18歳未満のCUSTOMERが存在しないように、AGE列にCHECKを追加します。
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL CHECK (AGE >= 18), ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID));
CUSTOMERSテーブルがすでに作成されている場合、AGE列にCHECK制約を追加するには、次のようなステートメントを記述することになります。
ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL CHECK (AGE >= 18 );
また、次の構文も使用できます。これは、複数の列で制約に名前を付けることもサポートします。
ALTER TABLE CUSTOMERS ADD CONSTRAINT myCheckConstraint CHECK(AGE >= 18);
DROP a CHECK Constraint
CHECK制約を削除するには、次のSQL構文を使用します。 この構文は MySQL では動作しません。
ALTER TABLE CUSTOMERS DROP CONSTRAINT myCheckConstraint;
sql-rdbms-concepts.htm
Advertisements