ITPub博客

首页 > 数据库 > Oracle > 对表列的基础操作

对表列的基础操作

原创 Oracle 作者:leon830216 时间:2014-03-16 11:58:23 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

下一篇: UNDO相关查询
请登录后发表评论 登录
全部评论

注册时间:2009-09-18

  • 博文量
    164
  • 访问量
    323610