Not Null 制約の付与方法
Not Null 制約の付与方法について説明します。
以下の制約が全く付与されていないテーブル(社員)の氏名にNot Nullを付与ししていきます。
No | 項目名(論理) | 項目名(物理) | 型 | 制約 |
---|---|---|---|---|
1 | 社員番号 | EMP_NO | INT | |
2 | 氏名 | EMP_NAME | VARCHAR | |
3 | 部門番号 | DIV_ADDR | INT | |
4 | 削除フラグ | DEL_FLG | INT |
Not Null の付与
ここではNot Nullを付与するSQLを説明します。
構文は以下の通りです。
構文の詳細は公式サイトを参照ください。
【文法】
ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL【実行例】
実際にSQLを実行し主キーを付与します。
SQLは以下の通りです。
ALTER TABLE MST_EMP ALTER COLUMN EMP_NAME SET NOT NULL ;
実行結果は以下になります。
実行後DESCコマンドを実行するとNot Null制約が付与されていることが確認できます。
また、REORGコマンドも実行しておきます。
SQL> ALTER TABLE MST_EMP ALTER COLUMN EMP_NAME SET NOT NULL 2 ; DB250000I: コマンドは正常に完了しました。 SQL> DESC MST_EMP ******************************************************************************** 名前 データ・タイプ タイプ・スキーマ 長さ スケール NULL 非表示 ------------------- ------------- ------------- -------- ------- ----- -------- EMP_NO INTEGER SYSIBM 4 0 Y Not EMP_NAME VARCHAR SYSIBM 30 0 N Not DIV_NO INTEGER SYSIBM 4 0 Y Not DEL_FLG INTEGER SYSIBM 4 0 Y Not ******************************************************************************** SQL> REORG TABLE MST_EMP 2 ; DB250000I: コマンドは正常に完了しました。
Not Null 制約の削除
Not Null 制約の削除のSQLを説明します。
構文は以下の通りです。
【文法】
ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL【実行例】
実際にSQLを実行しNot Null制約を削除します。
SQLは以下の通りです。
ALTER TABLE MST_EMP ALTER COLUMN EMP_NAME DROP NOT NULL ;
SQLの実行結果は以下の通りです。
これでNot Nullが削除されました。
SQL> ALTER TABLE MST_EMP ALTER COLUMN EMP_NAME DROP NOT NULL 2 ; DB250000I: コマンドは正常に完了しました。 SQL> DESC MST_EMP TABLE - MST_EMP ******************************************************************************** 名前 データ・タイプ タイプ・スキーマ 長さ スケール NULL 非表示 ------------------- ------------- ------------- -------- ------- ----- -------- EMP_NO INTEGER SYSIBM 4 0 Y Not EMP_NAME VARCHAR SYSIBM 30 0 Y Not DIV_NO INTEGER SYSIBM 4 0 Y Not DEL_FLG INTEGER SYSIBM 4 0 Y Not ********************************************************************************