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

コメントを残す

メールアドレスが公開されることはありません。