deezus blog

.Net Core、Typescriptを中心に技術的ノウハウを公開しています

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

はじめに

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

クエリ例

以下の例では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にはチェック制約がありません
  • 制約が追加されていますので、変更する場合は古い制約を削除する必要があります