ORA-01408: cette colonne liste déjà indexé

Oracle SQL Developer génère des instructions DDL de déjà existant tables de base de données (articles). C'est assez étrange que le DDL déclarations ne peuvent pas être appliquées à l'intérieur d'une nouvelle instance de base de données. Voici un exemple simplifié de la DDL

CREATE TABLE AB
  (
    "A"      NUMBER(*,0),
    "B"   NUMBER(*,0),
    "C" VARCHAR2(255 BYTE),
    CONSTRAINT "CHK_AB_A_NN" CHECK (A       IS NOT NULL) ENABLE,
    CONSTRAINT "CHK_AB_B_NN" CHECK (B       IS NOT NULL) ENABLE,
    CONSTRAINT "PK_AB" PRIMARY KEY ("A", "B")
  );
CREATE INDEX "IDX_AB_A" ON "AB"("A");
CREATE INDEX "IDX_AB_B" ON "AB"("B");
CREATE UNIQUE INDEX "PK_AB" ON "AB"("A", "B");

Si j'ai de l'exécution de ces instructions au sein d'une nouvelle instance oracle, j'obtiens l'erreur:

SQL-Fehler: ORA-01408: Diese Spaltenliste hat bereits einen Index
1. 00000 - "such column list already indexed"

Quelle est la raison de cette erreur?

La version de SQL Developer, et la base de données? La Version 4 ne semble pas faire cela, même si l'index est créé en premier et le PK est ajoutée plus tard avec un alter table. Vous ne savez pas si c'est un problème chez le client ou dans la version de base de données, mais je soupçonne que le client ne sont pas tout à fait assez intelligent.
QL-Développeur: Version 2.1.1.64 ET Oracle Database 11g Release 11.2.0.3.0 - 64bit de Production
J'avais pense fortement que c'est l'ancienne version de SQL Developer de ne pas être assez intelligent pour réaliser l'indice est inclus dans le PK alors. Si vous le pouvez, je vous suggère d'essayer une version plus récente et voir s'il se comporte correctement (4 semble mais est encore en version bêta). Vous pouvez également soulever à forum mais vous ne savez pas comment bien l'intérêt qu'il y aurait toujours dans la version 2...

OriginalL'auteur My-Name-Is | 2013-12-10