「Oracle」テーブルの列をNOT NULLにする方法

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production

構文
ALTER TABLE テーブル名 MODIFY(
項目名 NOT NULL
);
「alter table」を使って、テーブルの列をnot nullにします。

使用例
1.テーブルを作成します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE TABLE USERTEST
( "USERID" NUMBER(6,0),
"USERNAME" VARCHAR2(20),
"REGTIME" TIMESTAMP,
PRIMARY KEY ("USERID")
);
CREATE TABLE USERTEST ( "USERID" NUMBER(6,0), "USERNAME" VARCHAR2(20), "REGTIME" TIMESTAMP, PRIMARY KEY ("USERID") );
CREATE TABLE USERTEST
( "USERID"   NUMBER(6,0), 
  "USERNAME"  VARCHAR2(20), 
  "REGTIME" TIMESTAMP,  
  PRIMARY KEY ("USERID")
);

説明
ユーザーID(USERID): number型です。整数6桁を指定しています。
登録日時(REGTIME): TIMESTAMP型
ユーザーID(USERID):プライマリーキーを指定します

2.テーブルの列をnot nullに変更します
テーブルの項目名の「USERNAME」をNOT NULLに変更しています。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> ALTER TABLE USERTEST MODIFY(USERNAME NOT NULL);
表が変更されました。
SQL> ALTER TABLE USERTEST MODIFY(USERNAME NOT NULL); 表が変更されました。
SQL> ALTER TABLE USERTEST MODIFY(USERNAME NOT NULL);

表が変更されました。

3.テーブルの列定義を確認します
書式
desc テーブル名
操作例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> desc usertest;
名前 NULL? 型
----------------------------------------- -------- ----------------------------
USERID NOT NULL NUMBER(6)
USERNAME NOT NULL VARCHAR2(20)
REGTIME TIMESTAMP(6)
SQL> desc usertest; 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- USERID NOT NULL NUMBER(6) USERNAME NOT NULL VARCHAR2(20) REGTIME TIMESTAMP(6)
SQL> desc usertest;
 名前                                    NULL?    型
 ----------------------------------------- -------- ----------------------------
 USERID                                    NOT NULL NUMBER(6)
 USERNAME                                  NOT NULL VARCHAR2(20)
 REGTIME                                            TIMESTAMP(6)

 

Oracle

Posted by arkgame