Oracle テーブル定義の設定方法
■カラム追加
【基本構文】
ALTER TABLE テーブル名 ADD (カラム名 型);
【使用例】 ※TESTテーブルに「AGE」カラムをNUMBER型で追加>
ALTER TABLE TEST ADD (AGE NUMBER);
※複数追加する場合は「カンマ」でつなげる
ALTER TABLE TEST ADD (AGE NUMBER, PASS VARCHAR2(10));
■カラム名変更
【基本構文】
ALTER TABLE テーブル名 RENAME COLUMN 変更前のカラム名 TO 変更後のカラム名);
【使用例】 ※TESTテーブルの「AGE」のカラム名を「ESTIMATED_AGE」に変更>
ALTER TABLE TEST RENAME COLUMN AGE TO ESTIMATED_AGE;
■カラム削除
【基本構文】
ALTER TABLE テーブル名 DROP (カラム名);
【使用例】 ※TESTテーブルの「AGE」カラムを削除>
ALTER TABLE TEST DROP (AGE, PASS);
※複数削除する場合は「カンマ」でつなげる
ALTER TABLE TEST DROP (AGE);
■カラム定義変更
【基本構文】
ALTER TABLE テーブル名 MODIFY (カラム名 型);
【使用例】 ※TESTテーブルの「NAME」カラムのバイト数を100に変更>
ALTER TABLE TEST MODIFY (NAME VARCHAR(100));
■カラムのNULL制約変更
【基本構文】
ALTER TABLE テーブル名 MODIFY (カラム名 制約);
【使用例】 ※TESTテーブルの「ID」カラムを「NOT NULL」に変更>
ALTER TABLE TEST MODIFY (ID NOT NULL);
※逆に「NULL」に変更する場合
ALTER TABLE TEST MODIFY (ID NULL);
■プライマリーキー設定
【基本構文】
ALTER TABLE TEST2 ADD CONSTRAINT プライマリーキー名 PRIMARY KEY (カラム名);
【使用例】 ※TESTテーブルの「ID」カラムに「PRIM_ID」という名称で「ID」にプライマリーキーを設定>
ALTER TABLE TEST2 ADD CONSTRAINT PRIM_ID PRIMARY KEY (ID);
※プライマリーキー名は省略可能
■シーケンス設定
【基本構文】
CREATE SEQUENCE シーケンス名;
INSERT INTO テーブル名 VALUES (シーケンス名.NEXTVAL;
【使用例】 ※シ-ケンスをSEQ_IDという名称で設定
//シーケンス作成
CREATE SEQUENCE SEQ_ID;
//シーケンスをインサート
INSERT INTO TEST VALUES (SEQ_ID.NEXTVAL);
//現在のシーケンスの確認 ※INSERT文等によりシーケンスがセットされていない場合はORA-08002エラーになるので注意
SELECT SEQ_ID.CURRVAL FROM USER_SEQUENCES;
//次のシーケンスに移動 ※ロールバックできないので注意
SELECT SEQ_ID.NEXTVAL FROM USER_SEQUENCES;
■シーケンスのリセット
【基本構文】
ALTER SEQUENCE シーケンス名 RESTART;
【使用例】 ※SEQ_IDという名称のシーケンスをリセット
ALTER SEQUENCE SEQ_ID RESTART;
■シーケンス削除
【基本構文】
DROP SEQUENCE シーケンス名;
【使用例】 ※SEQ_IDという名称のシーケンスを削除
DROP SEQUENCE SEQ_ID;
■インデックス名の変更
【基本構文】
ALTER INDEX インデックス名 RENAME TO 新しいインデックス名;
【使用例】※旧インデックス名:SYS_C007927 新インデックス名:INDEX_ID
ALTER INDEX SYS_C007927 RENAME TO INDEX_ID;
■インデックス名の確認
【使用例】
SELECT INDEX_NAME FROM USER_INDEXES;