んだ日記

ndaDayoの技術日記です

【メモ】MySQL CHECK制約

んだです。メモです。

CHECK制約??

CHECK制約を記述することで、カラムに入るデータに条件を設定できる。

例えば...

たとえば、こんなTableがあったとする。

テーブル名:sample_check_constraint

カラム名 タイプ
id increments
start_date date
end_date date

カラムに制約を設けるなら、、

start_date < end_date

start_dateよりend_dateが遅い日時になっているように制約を設けたい

CHECK制約を書いてみる

CREATE TABLE sample_check_constraint(
  id int AUTO_INCREMENT NOT NULL PRIMARY KEY,
  start_date date NOT NULL,
  end_date DATE NOT NULL ,
   CHECK (start_date < end_date)
);

試してみる

↓これはOK

insert into sample_check_constraint values
(1,  '2019-08-01',  '2019-09-30');

↓これはエラ〜

insert into sample_check_constraint values
(1,  '2019-10-01',  '2019-09-30');


ERROR 3819 (HY000) : Check constraint 'sample_check_constraint_chk_1' is violated.

以上。

MySQLの勉強がてら、『SQLパズル』を解いていくシリーズ。