博客文章除注明转载外,均为原创。转载请注明出处。
本文链接地址:http://blog.chinaunix.net/uid-31396856-id-5757068.html
最近在进行分区表相关操作的时候,遇到以下错误
SQL> alter table TIM_CLIENT_LOG_HIS exchange partition P201507 with table TIM_CLIENT_LOG_TEMP_ALL without validation;
alter table TIM_CLIENT_LOG_HIS exchange partition P201507 with table TIM_CLIENT_LOG_TEMP_ALL without validation
*
ERROR at line 1:
ORA-14130: UNIQUE constraints mismatch in ALTER TABLE EXCHANGE PARTITION
处理方法有2种
1.在相关表创建所需要的约束
alter table TIM_CLIENT_LOG_HIS CONSTRAINT "PK_TIM_CLIENT_LOG_HIS" PRIMARY KEY ("ID");
但是缺点是约束校验,如果分区表数据很大,时间消耗会相对比较长。
2.将分区表的约束disable,分区交换结束后在enable,但是这种情况可能不能保证数据完整性。
至于选择方法1或者方法2,dba需要实际情况进行取舍。
这里选择方法1,在临时表上创建主键约束,然后在进行分区操作:
SQL> alter table TIM_CLIENT_LOG_HIS exchange partition P201507 with table TIM_CLIENT_LOG_TEMP_ALL without validation;
Table altered.
Elapsed: 00:00:01.37
Okay,顺利完成...
--The end
阅读(4191) | 评论(0) | 转发(0) |