sqlite check制約を設定する

sqlite check制約を設定する

sqliteで、check制約を設定する手順を記述してます。「CREATE TABLE」時に「check」に条件を指定することで可能です。sqliteは、3.37.1を使用してます。

環境

  • OS windows11 home
  • sqlite 3.37.1
  • DB Browser for SQLite 3.12.2

手順

挿入される値に条件を設定できる「check」制約を使用するには、「check」を指定します。

CREATE TABLE テーブル名(カラム名 check(条件), ...);

実際に、以下の「hoge」というテーブルのカラム「age」に条件「150」未満を設定してみます。

CREATE TABLE hoge(id integer, age integer check(age < 150));

実行結果

データ挿入

現在日付が入るか、データを実際に挿入してみます。

insert into hoge values(1, 10);
insert into hoge values(2, 150); -- エラー発生

結果: CHECK constraint failed: age < 150

実行結果をみると、ageに「150」以上のデータを挿入するとエラーになることが確認できます。

「null」を挿入してもエラーになりません。

insert into hoge values(2, null);

and・or使用

条件に「and」や「or」も使用することが可能です。

age >10 and age < 150

age = 10 or age < 5