2009-11-13 7 views
10

Ich muss eine vorhandene Einschränkung in Oracle-Datenbank aktualisieren, um dort eine neue Spalte hinzuzufügen.Ändern Sie eindeutige Integritätsbedingung in Oracle

ALTER TABLE MY_PARTNER_DETAILS 
MODIFY CONSTRAINT UQ_MY_PARTNER_DETAILS 
UNIQUE(PARTNER_CODE,PGOOD_CODE,SITE_CODE,PARTNER_PLACEMENT,PARTNER_PARTICIPATION) 

Gibt den Fehler:

Error at line 1 
ORA-00933: SQL command not properly ended 

Was ist das Problem?

Antwort

21

Sie sollten die Einschränkung löschen und neu erstellen. modify constraint ermöglicht es Ihnen, die Statusdefinition des Constraints zu ändern.

Siehe: Oracle Docs

+0

Das Problem ist, dass die Einschränkung von einigen Fremdschlüssel verwiesen wird. Und so kann ich es nicht fallen lassen, ohne sie zu ändern. – wheleph

+0

Wenn Sie jedoch die Einschränkung ändern, ist die Kombination von Spalten, auf die von Fremdschlüsseln verwiesen wird, nicht länger eindeutig. Sie müssen sie daher ebenfalls neu erstellen. – Majkel

+1

Die beiden Bedingungen sollten sich nicht gegenseitig ausschließen. Erstellen Sie also die neue, ändern Sie die Fremdschlüssel und legen Sie die alte ab. –

Verwandte Themen