MySQLのCHECK制約の使い方
MySQLでは、CHECK制約を使用して、データテーブルの特定の列または複数の列の値の範囲や条件制限を定義できます。
テーブルを作成するときに列定義の中で CHECK 制約を使用して条件を指定できます。たとえば、
CREATE TABLE mytable (
id INT,
age INT CHECK (age >= 18),
salary INT CHECK (salary > 0)
);
上の例では、ageカラムの値は18以上、salaryカラムの値は0以上である必要があります。
ALTER TABLE 文で CHECK 制約を追加することもできます。例:
ALTER TABLE mytable ADD CHECK (age > 0);
上の文は age 列の値を制限する条件を追加し、age が 0 より大きくなるようにしています。
MySQL は CHECK 制約を完全にサポートしているわけではない点に注意してください。CHECK 制約を定義することはできますが、MySQL はテーブルレベルで CHECK 制約を検証したり、エラーをスローしたりしません。したがって、CHECK 制約は一種の規約であり、開発者はアプリケーションレイヤーまたはトリガーで CHECK 制約を検証する必要があります。