Oracle NOT NULL(必須)の制約を付加・解除する方法

OracleでNOT NULL(必須)の制約を付与・解除する方法です。

Oracle NOT NULL(必須)の制約を付加・解除する方法

Oracleで一度NOT NULL(必須)にしたカラム(テーブル列)の制約を付与・解除するには、ALTER TABLE~MODIFYを使うことで削除できます。

よほどのことがない限り一度設定したカラムのNOT NULL制約について付加したり解除したりすることなんてないですよね。だからこそ使い方を忘れてしまいます。なので備忘録的に書いておきます^^;

ここでは OracleでNOT NULL(必須)の制約を付加・解除する方法 を紹介します。


NOT NULL(必須)の制約を付与する

NOT NULL(必須)の制約を付与するには ALTER TABLE 表名 MODIFY ( 列名 型(桁),... ) を使います。

EMPLOYEESテーブルのEMAILカラムを必須にするには下記のSQLを実行します。


ALTER TABLE EMPLOYEES MODIFY EMAIL NOT NULL;

必須にしようとするカラムついて、全レコードにデータが入っている必要があります。1件でもNULLがある場合には「ORA-01451: NULLに変更しようとした列はNULLに変更できません」のエラーが発生します。

NOT NULL(必須)の制約を解除する

今度は逆にNOT NULL(必須)の制約を解除する方法です。

EMPLOYEESテーブルのEMAILカラムを必須解除するには下記のSQLを実行します。


ALTER TABLE EMPLOYEES MODIFY EMAIL NULL;

まとめ

OracleでNOT NULL(必須)の制約を付加・解除する方法を紹介しました。

巨大テーブルになればなるほど、この手の作業は慎重にならざるを得ません。どうしてもNOT NULLを制約を変更する必要がなければ、無理せずそっと運用することをおすすめします。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。