テーブルのカラムにチェック制約を追加する方法

データベース

はじめに

例えば年齢制限のあるシステムなどデータベースに登録できる値に制限をかけたい場合があります
そのようなカラムにチェック制約を追加すれば、条件に合わない値を登録しようとした場合エラーにすることができます

クエリ例

以下の例ではusers.ageに20未満の値を登録できないようにします

テーブル作成時に追加する場合

CREATE TABLE
   users
 (
   id varchar(100) NOT NULL PRIMARY KEY,
   name varchar(100),
   age int CHECK(age>= 20)
)

既存テーブルのカラムに追加する場合

ALTER TABLE
    users
ADD CHECK(age>= 20)

注意事項

  • MySQLにはチェック制約がありません
  • 制約が追加されていますので、変更する場合は古い制約を削除する必要があります
タイトルとURLをコピーしました