CHECK制約

広告

行を追加する時に、許可するかどうかの条件を付ける制約です。例えばある数値以上の値しか値を指定できないなどの条件設定が可能です。

構文としては下記のようになります。

create table table_name
   (column_name1 column_type CHECK(条件式), …);

カラムを指定する際に、"CHECK"を指定しその後に条件式を記述します。

では試してみます。

CHECK

「sample5」というテーブルを作成し、「id」と「name」という2つのカラムを作成します。そして「id」カラムには「id > 10」という条件式を指定しておきました。

ではまず1行追加してみます。

CHECK

「id」カラムの値が「20」にしてありますので問題なく行を追加できます。次は「id」カラムを「8」にして行を追加してみます。

CHECK

条件式に合わない行を追加しようとしたため、「ERROR: new row for relation "sample6" violates check constraint "sample6_id_check"」というエラーが発生しました。

( Written by Tatsuo Ikura )