Oracle Table Columns 変更
カラムの追加 / ALTER TABLE ADD column(s)
表定義の最後にのみ追加可能。表の途中への挿入や列の順番の変更や入れ替えはできない。ALTER TABLE my_table ADD ( time_col TIMESTAMP(3) ) ;
カラムの定義の変更 / ALTER TABLE MODIFY column(s)
データが存在する場合、直接MODIFYは出来ない、DROPしてから、ADD
ALTER TABLE IAMGE_INFO DROP COLUMN IMAGE_DATA ALTER TABLE IMAGE_INFO ADD (IMAGE_DATA LONG RAW)
NULL 制約の設定と解除
ALTER TABLE table_name MODIFY ( char_col NULL )
ALTER TABLE my_table MODIFY ( char_col NOT NULL ) ;
デフォルト値の変更と削除
ALTER TABLE my_table MODIFY ( char_col DEFAULT 'abc' ) ;
カラムの長さ、桁数、スケール、精度の変更
ALTER TABLE my_table MODIFY ( char_col VARCHAR2(50), number_col NUMBER(14) );
テーブル名、カラム名の変更 / ALTER TABLE RENAME [column]
列名の変更
ALTER TABLE my_table RENAME COLUMN time_col TO date_col ;
列の削除 (DROP)
ALTER TABLE my_table DROP ( char_col , number_col ) -- 以下はオプションなので必須ではない CASCADE CONSTRAINT INVALIDATE; CASCADE CONSTRAINT : 列に付随する制約(主キー、ユニークキー、チェックなど)を削除する。INVALIDATE : 依存関係にあるオブジェクトに対し再帰的に無効化マーク(INVALID) を付ける。CHECKPOINT : UNDO に蓄積されるログを抑制するため、指定行数毎に チェックポイント を発生させる。
ALTER TABLE PRIMARY KEY
主キー、プライマリキー制約の追加
ALTER TABLE table_name ADD [ CONSTRAINT primary_key_name ] PRIMARY KEY (col_name, colname2 ..) ;
ADD PRIMARY KEY と USING INDEX
ALTER TABLE table_name ADD CONSTRAINT primary_key_name PRIMARY KEY (col_name, colname2 ..) USING INDEX -- インデックス作成時の属性情報 PCTFREE 10 INITRANS 2 STORAGE( INITIAL 64K ) TABLESPACE USERS ;
主キー、プライマリキー制約の削除
ALTER TABLE table_name DROP PRIMARY KEY; or ALTER TABLE table_name DROP CONSTRAINT primary_key_name ;
プライマリキーの確認をするための SQL
select c.table_name, c.constraint_name, c.status cc_status, cc.position, cc.column_name, ix.index_name, ix.uniqueness, ix.tablespace_name, ix.visibility, ix.status from user_indexes ix, user_constraints c, user_cons_columns cc where ix.table_name in ('MY_TABLE') and c.constraint_type = 'P' and ix.index_name = c.index_name and c.constraint_name = cc.constraint_name order by cc.constraint_name, cc.position;
0 件のコメント:
コメントを投稿