我有一个表,我需要删除主键,这是一个复合键,并使其成为基于单个值的主键。 我放弃了原来的主键:
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没有掉线吗?我没有正确添加回来吗?
答案 0 :(得分:3)
在现有表上,如果该表中的数据确实可用作主键(即所有值为distinct而非null),则只能创建主键。