NOT NULL制約(カラムにNULLの格納を許可するかどうか)
カラムに NOT NULL 制約をつけることでカラムに NULL を格納することができなくなります。ここでは MariaDB における NOT NULL 制約の使い方について解説します。
(Last modified: )
NOT NULL 制約の使い方
テーブルを作成するときにカラムに対して NOT NULL 制約を付けることができます。書式は次の通りです。
CREATE TABLE tbl_name (col_name data_type [NOT NULL | NULL],...)
カラムのデータ型のあとに NOT NULL または NULL を記述します。 NOT NULL を記述すると該当のカラムには NULL を格納できなくなります。 NULL を記述すると NULL を格納できるようになります。どちらも記述しなかった場合は NULL が記述されたものとみなされるので、デフォルトでは NULL が格納できます。
では実際に試してみます。次のようなテーブルを作成しました。 name カラムには NOT NULL 制約が設定されています。
create table user (id int, name varchar(10) not null);
作成したテーブルのカラム情報を確認します。
show columns from user;
Null カラムの値をみていただくと、 id カラムが Yes 、 name カラムが No となっています。
それではテーブルにデータを追加してみます。最初は name カラムの値が NULL ではない値です。
insert into user values(1, 'Yamada');
問題なくテーブルにデータが追加できました。次に name カラムの値に禁止されている NULL を指定してデータを追加してみます。
insert into user values(2, NULL);
「Column 'name' cannot be null」というエラーが表示されてデータの追加が失敗しました。 NULL が許可されていないカラムに対して NULL を追加しようとしたためです。
このようにカラムに対して NOT NULL 制約を設定することで、対象のカラムに NULL が設定されたデータを追加することを禁止することができます。
-- --
MariaDB における NOT NULL 制約の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。