我今天也遇到了个问题:
我有一个大的分区表,有一个字段调整,
步骤:
1.创建普通表p2010--2014(表结构与分区表,相同)
2.用exchange partition 交换分区表与普通表: SQL> alter table barcode_master exchange partition P2010 with table p2010; 。。。。。
3.重建分区表(同进创建index和primary key ),修改普通表的字段
4.用exchange partition 交换分区表与普通表(在这步出错,下面错识)
SQL> alter table barcode_master exchange partition P2010 with table p2010;
alter table barcode_master exchange partition P2010 with table p2010
*
ERROR at line 1:
ORA-14130: UNIQUE constraints mismatch in ALTER TABLE EXCHANGE PARTITION
查看发现:
分区表有INDEX 和PRIMARY KEY ,p2010(普通表)没有
把分区别的 INDEX 和PRIMARY KEY 删了就可以了
交换完了,再加INDEX和 Primary key ,但这个时间比较长
我这 barcode_master 表比较大,2亿多条数据,重建index和primary key 比较麻烦关且比较耗时。
别一个方案(理论的不知怎么来做):
就是在p2010(普通表) 在加 INDEX 和PRIMARY KEY 不知各位大侠没有这方面的经验?
我测试时说INDEX名同名,如果INDEX名不同不知行不行 ? 这个方案是否可行 ??
我有一个大的分区表,有一个字段调整,
步骤:
1.创建普通表p2010--2014(表结构与分区表,相同)
2.用exchange partition 交换分区表与普通表: SQL> alter table barcode_master exchange partition P2010 with table p2010; 。。。。。
3.重建分区表(同进创建index和primary key ),修改普通表的字段
4.用exchange partition 交换分区表与普通表(在这步出错,下面错识)
SQL> alter table barcode_master exchange partition P2010 with table p2010;
alter table barcode_master exchange partition P2010 with table p2010
*
ERROR at line 1:
ORA-14130: UNIQUE constraints mismatch in ALTER TABLE EXCHANGE PARTITION
查看发现:
分区表有INDEX 和PRIMARY KEY ,p2010(普通表)没有
把分区别的 INDEX 和PRIMARY KEY 删了就可以了
交换完了,再加INDEX和 Primary key ,但这个时间比较长
我这 barcode_master 表比较大,2亿多条数据,重建index和primary key 比较麻烦关且比较耗时。
别一个方案(理论的不知怎么来做):
就是在p2010(普通表) 在加 INDEX 和PRIMARY KEY 不知各位大侠没有这方面的经验?
我测试时说INDEX名同名,如果INDEX名不同不知行不行 ? 这个方案是否可行 ??
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27036311/viewspace-735989/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27036311/viewspace-735989/