修改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中的唯一约束的主要内容,如果未能解决你的问题,请参考以下文章