您的位置:首页 > 数据库 > Oracle

如何调整Oracle(11g)数据库字段顺序

2017-12-29 14:56 1836 查看
如何调整Oracle(11g)数据库字段顺序

在11g版本中Oracle是不支持调整表字段顺序的,而在更高的版本则可以直接调整字段顺序。

这里我们需要做的就是在保持原表数据完整的情况下,调整字段顺序。

1、我们重新建一个临时表存放表数据,我们的原表名是test_table,临时表名test_table_new。

--根据我们需要显示字段的顺序建立临时表test_table_new

create table test_table_new as
 select ID,
NAME,
SEX,
BIRTH,
CITY
from test_table;

--删除原来的表test_table

drop table test_table;

--把临时表重命名为test_table

rename test_table_new to test_table;

2、上面这种方式建立的表存在一个问题,就是数据库表字段的注释会被清空,为了保证数据完整性,
我们需要手动备份表字段注释信息。然后通过

comment on column test_table.NAME is '名字';
comment on column test_table.SEX is '性别'; 。。。。

完成字段注释添加。

3、如果我们删除表忘记了备份,比如没有备份字段注释信息,或者字段有几个忘了,这时候我们怎么办?
我们就需要从Oracle垃圾站里面找到表信息,一般通过drop删除的表都会在垃圾站里面存一段时间,
如果垃圾站里面的数据也被删除了,那么只有自己添加了。

--查询数据库回收站信息,获取表在回收站里面的标识
select *
 from user_recyclebin t
where t.original_name = 'test_table';
--查询表字段信息
select *
 from user_col_comments t
where t.table_name = 'BIN$YU4EU0x7AK7gUwoOyc1GGw==$0';

 

4、常用到的数据库操作 
--添加字段
alter table table_name add(count VARCHAR2(30));

comment on column table_name.buycard is '买卡送优惠券0';

--清空表数据
truncate table table_name;

--修改字段长度

alter table table_name modify(TRADETIME VARCHAR2(30));

--表字段重命名
alter table table_name rename column BusinessJnlNo to SEQ_NO;

--设置字段默认值
alter table table_name modify SEX default ‘0’;

每天努力一点,每天都在进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息