對錶列的基礎操作

leon830216發表於2014-03-16
1. 增加列
1-1. 增加列
alter table t add col1 int;
alter table t add (col1 int, col2 varchar2(10));

1-2. 增加列時設定約束
# 此處增加的預設值會修改已存在資料行中的此列的值
alter table t add (col1 int, col2 varchar2(10) default 'dummy' not null);

2. 修改列

2-1. 修改列
alter table t modify col1 varchar2(10);
alter table t modify (col1 varchar2(10), col2 int);

2-2. 修改列時設定約束
alter table t modify (col1 varchar2(10), col2 int default 1);

2-3. 修改列時刪除預設值約束
# 此處修改的預設值不會修改已存在資料行中的此列的值
alter table t modify col1 varchar2(10) default null);

2-4. 修改列名
alter table t rename column col1 to col2;

3. 刪除列

3-1. 刪除列
# 不能刪除 sys 使用者表的列, 大表需要較長時間
alter table t drop col1;
alter table t drop (col1,col2);

# 選項???
cascade constraint invalidate

4. 無效化/隱藏列
# 速度快, 立即返回, 無法恢復
alter table t set unused column col1 cascade constraints;
select owner,table_name,column_name,hidden_column from dba_tab_cols where table_name = 'T';

# 大表需要較長時間
alter table scott.t drop unused columns;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22558114/viewspace-1122576/,如需轉載,請註明出處,否則將追究法律責任。

相關文章