我有带有两列EMP
和ENM
的表EADD
。现在,我需要添加一列EMPID
,但我希望将其显示为表中的第一列,例如EMPID, ENM, EADD
。
答案 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可以对列进行重新排序。但是,如果表中包含许多字段,则此方法可能令人讨厌,尤其是在开发过程中多次重新排序时。
总是有一种可靠且可靠的方法来删除表并按所需顺序重新创建。