Fallen dann hinzufügen einer constraint fehlschlägt, in oracle
Ich versuche zu bewegen, eine primary key-Einschränkung zu einer anderen Spalte in oracle. Ich versuchte dies:
ALTER TABLE MY_TABLE
DROP CONSTRAINT c_name;
ALTER TABLE MY_TABLE
ADD CONSTRAINT c_name PRIMARY KEY
(
"COLUMN_NAME"
) ENABLE;
Dieser kann nicht auf die add constraint mit einer Fehlermeldung besagt, dass die Einschränkung bereits vorhanden ist, obwohl ich gerade gelöscht. Irgendwelche Ideen, warum dies geschieht
- Sie müssen angeben, der name der Tabelle, die irgendwo entlang der Linie 😀
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn das ursprüngliche constraint war eine primary key-Einschränkung, Oracle erstellt einen index, um die Durchsetzung der Einschränkung. Dieser index hat denselben Namen wie die Einschränkung (C_NAME in deinem Beispiel). Sie müssen den index löschen, die separat von dem Zwang. So müssen Sie zu tun eine :
Ist der sicherste Weg, um als erstes eine unique-index. Versuchen Sie dies:
Fallen dann die alten PK:
(Optional) Benennen Sie die index:
Und fügen Sie dann die PK wieder mit Angabe der index verwendet werden:
Ich weiß nicht, ob dies ist ein ähnliches problem, aber in DB2, haben Sie, um tatsächlich zu Begehen, nach der
alter table
- Anweisung. Ansonsten ist es immer noch rumtreiben.