修改Oracle中的唯一约束

Posted

技术标签:

【中文标题】修改Oracle中的唯一约束【英文标题】:Modify unique constraint in Oracle 【发布时间】:2010-12-16 10:17:35 【问题描述】:

我需要更新 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

这有什么问题?

【问题讨论】:

【参考方案1】:

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

见:Oracle Docs

【讨论】:

问题是约束被一些外键引用。所以我不能不改变它们就放弃它。 这两个约束不应相互排斥。所以创建新的,修改外键,然后删除旧的。 @Dave Costa 是的,如果您需要始终保持关系,那么您将首先创建新的约束和外键,然后删除旧的。然后,如果需要,您可以将新名称重命名为旧名称。 Oracle 文档链接已损坏。 Oracle Docs 链接已修复。

以上是关于修改Oracle中的唯一约束的主要内容,如果未能解决你的问题,请参考以下文章

怎样在oracle中创建主外键和唯一约束

如何为 Oracle 中的列组合赋予唯一约束?

oracle 唯一索引,唯一约束,主键之间的联系

oracle唯一约束

oracle数据导入时,提示违反唯一约束性?

Oracle数据库主键约束与唯一索引有啥区别?