【问题标题】:Oracle: Understanding and replicating ORA-14130 UNIQUE constraints mismatch in ALTER TABLE EXCHANGE PARTITIONOracle:了解和复制 ALTER TABLE EXCHANGE PARTITION 中的 ORA-14130 UNIQUE 约束不匹配
【发布时间】:2020-02-26 09:42:55
【问题描述】:

大家! 我在共享开发环境中遇到此错误(ALTER TABLE EXCHANGE PARTITION 中的 ORA-14130 UNIQUE 约束不匹配),我无法修复它,因为我不完全理解它。

让我们创建这三个表:

我应该在哪个表上为 ALTER TABLE EXCHANGE PARTITION 创建什么索引/约束失败并出现 ORA-14130?

CREATE TABLE TMP_DEBUG_BORRAR_DATOS_1 AS
SELECT  level id, timestamp'2000-11-02 09:00:00' fecha
FROM    dual
CONNECT BY level <= 100000 ;

CREATE TABLE TMP_DEBUG_BORRAR_DATOS_2 AS
SELECT level id, timestamp'2001-09-10 13:00:00' fecha
FROM dual
CONNECT BY level <= 100000 ;

CREATE TABLE TMP_DEBUG_BORRAR_TEST
( 
    id, 
    fecha
)
PARTITION BY RANGE ( fecha )
(
    PARTITION year_2000 VALUES LESS THAN ( timestamp'2000-12-02 00:00:00' ),
    PARTITION year_2001 VALUES LESS THAN ( timestamp'2001-10-10 00:00:00' )
)
AS
SELECT  1, timestamp'2000-11-02 09:00:00'
FROM    dual
WHERE   1=0;

--What should I add here for the ALTER TABLE EXCHANGE PARTITION to throw an ORA-14130?
ALTER TABLE TMP_DEBUG_BORRAR_TEST EXCHANGE PARTITION year_2000 WITH table TMP_DEBUG_BORRAR_DATOS_1;

非常感谢你!

【问题讨论】:

    标签: oracle partition


    【解决方案1】:

    你需要对分区表有一个唯一的约束才能得到错误。所以,在交换之前这样做:

    alter table TMP_DEBUG_BORRAR_TEST add constraint ukk unique (id, fecha);
    

    然后你需要像这样进行交换:

    ALTER TABLE TMP_DEBUG_BORRAR_TEST EXCHANGE PARTITION year_2000 WITH table TMP_DEBUG_BORRAR_DATOS_1 including indexes;
    

    【讨论】:

    • 抛出 ORA-14098 的嗡嗡声:ALTER TABLE EXCHANGE PARTITION 中的表的索引不匹配,而不是 ORA-14130
    • 这就是我得到的。 "SQL> ALTER TABLE TMP_DEBUG_BORRAR_TEST EXCHANGE PARTITION year_2000 WITH table TMP_DEBUG_BORRAR_DATOS_1 包括索引;ALTER TABLE TMP_DEBUG_BORRAR_TEST EXCHANGE PARTITION year_2000 WITH table TMP_DEBUG_BORRAR_DATOS_1 包括索引 * 第 1 行的错误:ORA-14130 不匹配 PARTIABLE EXCHANGE 约束。这真的取决于你是如何做到的。您添加了唯一索引还是唯一约束?
    • 你完全正确!我添加了 UNIQUE INDEX 和 PK,但不是唯一约束。我的错!我很乐意接受答案;)
    猜你喜欢
    • 2021-10-03
    • 2012-04-28
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    相关资源
    最近更新 更多