Oracle学习笔记(7)

表结构的修改与整理。

表结构的修改语句基本上是 alter table ,然后我们讨论下在DB构建好之后的修改语句。

不过在讨论这个之前,想说的是,一个好的数据结构,是会预留出来这些字段的,正常情况下,

这些语句不应该被经常用到。好了,下面开始讨论。

接下来就直接举例子,下面的语句是在Oracle 11g的基础上得出的。

--删除

alter table {tablename} drop column {columnname};

例如:alter table kkt120 drop column kyoten_mei;

--添加

alter table {tablename} add {columnname columntype(columnlength)};

例如:alter table kkt120 add JUCYU_KUBUN VARCHAR2(1);

--修改

alter table {tablename} modify {columnname columntype(columnlength)};

例如:alter table kkt271 modify GENCHI_IDO_AVG_TANKANUMBER(16,3);

这些是查资料得来的,更详细的详见Oracle学习笔记(8)。

利用这些语句修改表结构之后,modify,drop是不会改变表字段位置的,而add的结果都会在最后。

如果我们需要追加一个唯一键或者主键的时候,这样直接搞,会导致其他程序中的insert语句发生异常。

为了避免上面的错误发生,我们需要整理表结构。即将要给出的这个方法适用于数据量不是很大的表,百万件

以上批量执行不推荐。

例如我们要修改t 表,表的结构是 id varchar(10)(unique key), name varchar(150), count number(7,0).现在我们需要

追加一个唯一键约束type varchar(2)。执行script如下:

alter table t add type varchar(2);

create table t1 as select id,type,name,count from t;

drop t;

rename table t1 to t;

alter table t add constraint t_uk1 unique (id,type);

即可。

百万件以上的后面再研究

posted on 2012-11-15 13:45  扭头撞到墙  阅读(155)  评论(0编辑  收藏  举报