修改Oracle中的唯一约束

问题描述:

我需要更新Oracle数据库中的现有约束以在其中添加新列。修改Oracle中的唯一约束

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

给出了错误:

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

与这有什么问题?

您应该删除并重新创建约束。 modify constraint允许您更改约束的状态而不是定义。

请参阅:Oracle Docs

+0

问题是约束被某些外键引用。所以我不能在不改变它的情况下放弃它。 – wheleph 2009-11-13 19:49:54

+0

但是,如果更改约束,则由外键引用的列的组合将不再是唯一的,因此您将不得不重新创建它们。 – Majkel 2009-11-13 20:02:45

+1

这两个约束不应该是相互排斥的。因此,创建新的,修改外键,然后删除旧的。 – 2009-11-13 20:08:52