NOT NULL制約の使い方
カラムに格納する値として NULL を禁止したい場合、カラムに NOT NULL 制約を設定します。ここでは SQLite における NOT NULL 制約の使い方について解説します。
(Last modified: )
目次
NOT NULL制約とは
カラムに NOT NULL 制約を設定すると、対象のカラムには NULL を格納することができなくなります。NOT NULL 制約をカラムに設定する場合の書式は次の通りです。
CREATE TABLE テーブル名(カラム名 NOT NULL, ...);
では実際に試してみます。次のようなテーブルを作成しました。 name カラムには NOT NULL 制約が設定されています。
create table user(name text not null, address text);
それではデータを追加してみます。 address カラムには NULL を格納することができます。
insert into user values('Honda', 'Tokyo');
insert into user values('Moriyama', null);
次に NOT NULL 制約が設定されているカラムに NULL の値を指定してデータを追加してみます。
insert into user values(null, 'Osaka');
この場合 Runtime error: NOT NULL constraint failed: user.name というエラーが表示されます。
NOT NULL 制約が設定されたカラムに対して値を指定せずにデータを追加した場合も自動的に NULL を格納しようとするため同じエラーとなります。
insert into user(address) values('Saitama');
データを追加するときに必ず値を設定する必要があるカラムに対して NOT NULL 制約を設定されるようにされてみて下さい。
-- --
SQLite における NOT NULL 制約の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。