MySQLでチェック制約を設定する
MySQLでは、CHECK制約を使用してデータテーブルに条件制約を定義できます。ただし、MySQLではCHECK制約を直接サポートしていないことに注意してください。代わりに、データテーブルを作成するとき、類似の機能を実現するためにカスタムのENUMまたはSET列を定義できます。
MySQLでENUM列を使用し、CHECK制約を実装する方法を示す例を以下に示します。
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
gender ENUM('Male','Female') NOT NULL
);
サンプル中のstudentsテーブルのgender列はENUM型列として定義されており、値は ‘Male’ または ‘Female’のいずれかに制限され、空にすることはできません。
こうした方法で、MySQLで単純な条件制約を実装することが可能です。しかしながら、ENUM型には、値が固定であるため、動的な追加や削除ができないといった制限があることに注意してください。より複雑な条件制約が必要な場合は、トリガーやストアドプロシージャによって実装する必要があるかもしれません。