Oracle
 sql >> база данни >  >> RDS >> Oracle

новалидиране с грешка ora-02299

Ако ви разбирам правилно, вие очаквате Oracle да игнорира стари дублиращи се стойности и да позволява нови стойности само когато удовлетворяват ограничението. Грешката се връща, защото когато добавите UNIQUE ограничение, Oracle създава уникален индекс на колоната, за да провери стойностите, но вашата таблица вече има дублиращи се стойности, така че не успява. Първо бих създал неуникален индекс, след което бих добавил ограничението, така че да използва вашия съществуващ неуникален индекс, вместо автоматично да създава уникален индекс, който би се провалил:

create index arc_ix on arc (name);

alter table arc add constraint arc_uq unique (name) enable novalidate;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между FOR UPDATE OF и FOR UPDATE

  2. Има ли функция в oracle, подобна на group_concat в mysql?

  3. Каква е разликата между 'YYYY' и 'RRRR' в Oracle SQL

  4. for цикъл вътре в оракул на курсора

  5. DBMS_METADATA и други пакети са невалидни