hatte ich eine Einschränkung in einer TabelleFinding Geister Einschränkung von Oracle DB
CREATE TABLE "USERSAPPLICATIONS" (
"USERID" NUMBER NOT NULL ,
"APPLICATIONNAME" VARCHAR2 (30) NOT NULL ,
CONSTRAINT "PK_USERSAPPLICATIONS" PRIMARY KEY ("USERID","APPLICATIONNAME")
)
/
Vor zwei Wochen mir die Tabelle geändert, hinzugefügt einige Spalten, löschte die Einschränkung „PK_USERSAPPLICATIONS“ und hatte einen Ersatzschlüssel. Ich kann in Oracle SQL Developer sehen, dass die Einschränkung PK_USERSAPPLICATIONS nicht mehr existiert.
Unabhängig davon, wenn ich versuche, zwei Einträge mit der gleichen Benutzer-ID/application Kombination hinzuzufügen, ich einen Fehler
SQL Error: ORA-00001: unique constraint (ACCOUNTMP1.PK_USERSAPPLICATIONS) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
Wenn ich der Aussage
SELECT *
FROM user_cons_columns
WHERE constraint_name = 'PK_USERSAPPLICATIONS'
ausführen bekomme ich null Zeilen . Wie kann das sein? Oracle sollte keine Kenntnis von der Einschränkung PK_USERSAPPLICATIONS haben, da sie bereits vor Wochen gelöscht wurde, und ich kann sie auch nicht in der Datenbank sehen.
+1. Spot auf. Hätte nie so gedacht. – Guru
Sehr gute und gründliche Antwort. Das war es - blöd wurde der Index in meinem Fall genau so genannt. – simon
Danke. Nachdem der Index gefunden wurde, lösche ich ihn mit einem anderen Skript DROP INDEX PK_USERSAPPLICATIONS; – Coisox