【问题标题】:Drop one Primary key and add another in oracle在 oracle 中删除一个主键并添加另一个主键
【发布时间】:2015-10-30 00:24:58
【问题描述】:

我有一个表,我需要删除作为复合键的主键并使其成为基于单个值的主键。 我删除了原来的主键:

SQL> alter table depositor
  2  drop primary key;

  Table altered.

但是当我尝试添加新的背面时,我收到一条错误消息。

SQL> alter table depositor
   2  add primary key (account_number);

      alter table depositor
                *
      ERROR at line 1:
   ORA-02437: cannot validate (ZSMITH.SYS_C0084996) - primary key violated

PK不是掉了吗?我没有正确添加回来吗?

【问题讨论】:

  • 您确定新的主键列在您现有的数据上都是不同的并且永远不会为空吗?
  • 那是重复的帐号

标签: sql oracle primary-key ddl alter-table


【解决方案1】:

在现有表上,只有当该表中的数据确实可以用作主键(即所有值都不同且不为空)时,您才能创建主键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多