在oracel中用alter table add column增加的列总是在表的最后一列上,我想自已改变这个列的位置,比如增加在第3列的后面这样,请高手指教

解决方案 »

  1.   

    可以用来选择的方法是:
    假设你的表为  table1
    字段列表为:
    f1 varchar2(10)
    f2 varchar2(20)
    f3 number(3)如果你想把表变成f1 varchar2(10)
    f_new varchar2(20)
    f2 varchar2(20)
    f3 number(3)那么你需要这样创建一个表:
    create table table2 as select f1,'11' as f_new,f2,f3 from table1;
    这样修正这个表:
    alter table table2 modify (f_new varchar2(20))
    删掉原来的表:
    drop table table1;
    修改当前的表名:
    rename table2 to table1;ok.
      

  2.   

    还需要手工删掉 f_new中的数据:
    update table1 set f_new=null;
      

  3.   

    用个before
    例:alter table 表名 add 新列名 VARCHAR(8) before 已经有的列名
    如:alter table T add new_Column VARCHAR(8) before column
      

  4.   

    数据库中列的顺序没什么关系的吧,你想你查询出的结果保证一定的列顺序的话,最好还是在些sql语句的时候在select后吧列都加上去,这样就不怕实际列的顺序怎么变了