MySQL 8.0.16 で(ようやく)実装された CHECK 制約について、いまさらですが試してみます。
※配布開始 1 周年を迎えた「MySQL 8.0 の薄い本」を、8.0.20 対応版改訂を機にリニューアルし、実行例を増やすための記事です。はい。
「MySQL 8.0 の薄い本」を作って配っている話
CHECK 制約とは
簡単に言うと「記述した条件式に合わない行の挿入・更新を防ぐ」ものです。
INSERT, UPDATE, REPLACE, LOAD DATA, LOAD XMLの実行時に評価される 評価の結果がFALSEの場合にエラーになる(行の挿入・更新が行われない)
なお MySQL 8.0 の場合、以下のようなものは条件式に記述できません。
CONNECTION_ID(), CURRENT_USER(), NOW()のような非決定性関数 …
[さらに読む]