2009-11-13 14 views
10

Ho bisogno di aggiornare un vincolo esistente nel database Oracle per aggiungere una nuova colonna lì.Modifica vincolo univoco in Oracle

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

dà l'errore:

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

Qual è il problema?

risposta

21

È necessario eliminare e ricreare il vincolo. modify constraint consente di modificare lo stato del vincolo non la definizione.

Vedi: Oracle Docs

+0

Il problema è che il vincolo è riferito da alcune chiavi esterne. E quindi non posso lasciarlo cadere senza cambiarli. – wheleph

+0

Ma se si modifica il vincolo, la combinazione di colonne a cui fanno riferimento le chiavi esterne non sarà più univoca, quindi sarà necessario ricrearle anche. – Majkel

+1

I due vincoli non dovrebbero essere mutuamente esclusivi. Quindi crea il nuovo, modifica le chiavi esterne, quindi rilascia quello vecchio. –

Problemi correlati