Oracle
 sql >> Baza danych >  >> RDS >> Oracle

walidacja z błędem ora-02299

Jeśli dobrze zrozumiem, oczekujesz, że Oracle zignoruje stare zduplikowane wartości i zezwoli na nowe tylko wtedy, gdy spełnią ograniczenie. Błąd jest zwracany, ponieważ po dodaniu UNIQUE ograniczenie, Oracle tworzy unikalny indeks w kolumnie, aby sprawdzić wartości, ale tabela ma już zduplikowane wartości, więc to się nie udaje. Najpierw utworzyłbym nieunikalny indeks, a następnie dodałby ograniczenie, aby używał istniejącego nieunikatowego indeksu zamiast automatycznie tworzyć unikalny indeks, który by się nie powiódł:

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. Jak wysyłać zapytania dotyczące konkretnego dnia miesiąca w Oracle

  2. funkcja pl/sql wywoływana ile razy?

  3. Instalacja Oracle dla łączności SSIS (i sterowniki 32 64-bitowe)

  4. Zaktualizuj całą tabelę za pomocą numeru sekwencyjnego w Oracle

  5. Sprawdź poprawność daty w Oracle bez użycia funkcji