2015-10-30 5 views
1

У меня есть таблица, в которой мне нужно удалить первичный ключ, который является составным ключом и сделать его первичным ключом на основе одного значения. я упал первоначальный Первичный ключ:Отбросьте один основной ключ и добавьте еще один оракул

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 

Был ли отказ ПК? Я не вернул его правильно?

+1

Вы уверены, что новый столбец первичного ключа будет отличным и никогда не будет нулевым для существующих данных? – Thilo

+0

Это были дубликаты номеров – user3137110

ответ

3

В существующей таблице вы можете создать первичный ключ только в том случае, если данные в этой таблице действительно будут работать как первичный ключ (т. Е. Все значения будут разными, а не нулевыми).

Смежные вопросы