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を制約を変更する必要がなければ、無理せずそっと運用することをおすすめします。
おつかれさまでした。