【问题标题】:Modify unique constraint in Oracle修改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

这有什么问题?

【问题讨论】:

    标签: sql oracle constraints ora-00933


    【解决方案1】:

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

    见:Oracle Docs

    【讨论】:

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