sql >> Base de Datos >  >> RDS >> Oracle

novalidar con error ora-02299

Si lo entiendo correctamente, espera que Oracle ignore los valores duplicados antiguos y permita valores nuevos solo cuando satisfagan la restricción. El error se devuelve porque cuando agrega un UNIQUE restricción, Oracle crea un índice único en la columna para verificar los valores, pero su tabla ya tiene valores duplicados, por lo que falla. Primero crearía el índice no único, luego agregaría la restricción para que use su índice no único existente en lugar de crear automáticamente el índice único que fallaría:

create index arc_ix on arc (name);

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