CHECK制約
取りうる値の範囲の指定
その列が取りうる値を制限する
e.g.
ageは20~70とか、性別を表すunion型の感じとか
『達人に学ぶSQL徹底指南書 第2版』.icon p.11~
MySQLでは、v8.0.16から使える
制約はSQLを使って書ける
code:sql
CONSTRAINT National_Quota
CHECK (Not EXISTS (
SELECT *
FROM ExportMovies AS E1
WHERE ExportMovies.movie_title
AND ExportMovies.country_code <> E1.country_code));
デメリット
INSERTやUPDATEのたびにこのCHECK部分のSQLが実行されるので更新系のパフォーマンスが悪くなる