Sql-check
提供:Dev Guides
SQL-制約のチェック
CHECK制約により、レコードに入力される値を条件でチェックできます。 条件が偽と評価された場合、レコードは制約に違反しており、テーブルに入力されていません。
例
たとえば、次のプログラムはCUSTOMERSという新しいテーブルを作成し、5つの列を追加します。 ここでは、18歳未満の顧客を抱えることができないように、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);
チェック制約の削除
CHECK制約を削除するには、次のSQL構文を使用します。 この構文はMySQLでは機能しません。
ALTER TABLE CUSTOMERS
DROP CONSTRAINT myCheckConstraint;