如何在表中添加列并将其显示为第一列

时间:2019-05-02 21:17:16

标签: sql oracle

我有带有两列EMPENM的表EADD。现在,我需要添加一列EMPID,但我希望将其显示为表中的第一列,例如EMPID, ENM, EADD

2 个答案:

答案 0 :(得分:1)

演示:

create table emp
( enm  varchar2(20)
, eadd varchar2(100) );

alter table emp add empid number not null;

emp描述为:

Name                            Null?    Type
------------------------------- -------- ----------------------------
ENM                                      VARCHAR2(20)
EADD                                     VARCHAR2(100)
EMPID                           NOT NULL NUMBER

使除empid以外的所有列均不可见,并再次可见:

begin
    for r in (
        select column_name
        from   user_tab_columns c
        where  c.table_name = 'EMP'
        and    c.column_name <> 'EMPID'
    )
    loop
        execute immediate 'alter table emp modify '||r.column_name||' invisible';
        execute immediate 'alter table emp modify '||r.column_name||' visible';
    end loop;
end;
/

现在您有了:

Name                            Null?    Type
------------------------------- -------- ----------------------------
EMPID                           NOT NULL NUMBER
ENM                                      VARCHAR2(20)
EADD                                     VARCHAR2(100)

答案 1 :(得分:0)

如William Robertson所建议,使用invisible和visible可以对列进行重新排序。但是,如果表中包含许多字段,则此方法可能令人讨厌,尤其是在开发过程中多次重新排序时。

总是有一种可靠且可靠的方法来删除表并按所需顺序重新创建。