oracle怎么重构表,oracle表重建

Oracle 中对于大表是怎样更改表结构并且在

修改表名:

镇原网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

alter table 表名 rename to 新名

添加字段:

alter table 表名 add 字段名 字段类型

删除字段:

alter table 表名 drop column 字段名

修改字段:

alter table 表名 rename column 原字段名 to 新名;

修改字段类型(前提:表中无数据)

alter table 表名 modify 字段名 新类型;

例如:String deleteColumn="alter table t_user drop column sname";

oracle数据库,结果集拆分重构。

with sleest as(

select 1 rn,1111111111  a, 1 b, 'c1' c ,'d1' d from dual

union all

select 2,222222 , 3 , 'c2' ,'d2' from dual

)

--select * from sleest;

select distinct

--new_rn第一条存值,后续为空

case when levels.column_value 1 then null else t.rn end as new_rn,  

t.rn,

levels.column_value as sub_order,  

--4可以通过参数传递

trim(regexp_substr(t.a, '(.{1,4})', 1, levels.column_value))  as a,  

t.b,

--c第一条存值,后续为空

case when levels.column_value 1 then null else t.c end as c ,

t.d

from sleest t,

table(

cast(

multiset(

--4可以通过参数传递

select level from dual connect by  level = length(regexp_replace(trim(regexp_replace(t.a,'(.{4})','\1 ')), '[^ ]+'))  + 1

) as sys.OdciNumberList

)

) levels

order by rn, sub_order

构造临时数据:

根据需求参数4进行划分:

参考stackover上的一个解决方案改的,原文地址如下:

oracle如何重建表的id列

create sequence seq_id start with 1000 increment by 1 ;

update t set id=seq_id.nextval ;

1000w可能会稍微慢点,正常,看你的存储如何了,


文章名称:oracle怎么重构表,oracle表重建
URL标题:http://azwzsj.com/article/dscedjh.html