sql >> Databasteknik >  >> RDS >> Oracle

novalidate med fel ora-02299

Om jag förstår dig rätt förväntar du dig att Oracle ignorerar gamla dubbletter av värden och tillåter nya värden endast när de uppfyller begränsningen. Felet returneras eftersom när du lägger till en UNIQUE begränsning skapar Oracle ett unikt index på kolumnen för att kontrollera värdena, men din tabell har redan dubbletter av värden, så den misslyckas. Jag skulle skapa det icke-unika indexet först och sedan lägga till begränsningen så att det använder ditt befintliga icke-unika index istället för att automatiskt skapa det unika indexet som skulle misslyckas:

create index arc_ix on arc (name);

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



  1. MySQL får första icke-nullvärdet efter grupp av

  2. Hur får man den automatiskt inkrementerade PK från Oracle-databasen?

  3. hur kan jag göra besöksräknare i php?

  4. Att ställa in schemat i PostgreSQL JDBC verkar inte fungera