MySQL のチェック制約の書き方
MySQLでは、制約はCREATE TABLEステートメント内で制約を使用してチェックできます。 以下に一般的な制約とその構文を示します。
- NOT NULL制約:列の値が空でないことを保証
例えば、CREATE TABLE テーブル名 (カラム名 データ型 NOT NULL)
- 一意制約: 列の値がそれぞれ異なることを保証
例えば:CREATE TABLE table_name (column_name datatype UNIQUE)
- プライマリーキー制約:列を主キーとして設定し、列の値が一意でNULLではないことを確保します。
CREATE TABLE テーブル名 (列名 データ型 PRIMARY KEY);
- 外部キー制約:2つのテーブル間に関連付けを作成し、外部キー値が主テーブルに存在することを確認する。
テーブル名1の作成例(カラム名 データ型、外部キー(カラム名)はテーブル名2(カラム名)を参照)
- チェック制約:指定列の値が特定条件を満たす必要がある。
CREATE TABLE table_name (column_name datatype check (column_name > 0));
MySQLではCHECK制約が認められてはいるものの、施行されないので、同様の機能の実現にはトリガーを利用する必要があります。