आपके पास अद्वितीय अनुक्रमणिका वाले गैर-अद्वितीय मान नहीं हो सकते हैं। लेकिन आपके पास एक अद्वितीय बाधा के साथ गैर-अद्वितीय मान हो सकते हैं जो एक गैर-अद्वितीय अनुक्रमणिका द्वारा लागू किया जाता है। भले ही आपने शुरुआत में एक गैर-अद्वितीय अनुक्रमणिका बनाई हो, drop index
और enable
सिंटैक्स एक अद्वितीय अनुक्रमणिका को फिर से बनाने का प्रयास करेगा जब तक कि आप using index
. में अधिक विवरण प्रदान नहीं करते हैं अनुभाग।
उदाहरण के लिए:
SQL> create table my_table(my_column number,
2 constraint my_constraint unique (my_column));
Table created.
SQL> alter table my_table disable constraint my_constraint drop index;
Table altered.
SQL> insert into my_table select 1 from dual union all select 1 from dual;
2 rows created.
SQL> alter table my_table enable novalidate constraint my_constraint;
alter table my_table enable novalidate constraint my_constraint
*
ERROR at line 1:
ORA-02299: cannot validate (USER.MY_CONSTRAINT) - duplicate keys found
SQL> alter table my_table enable novalidate constraint my_constraint
2 using index (create index my_index on my_table(my_column));
Table altered.
SQL> --The constraint is enforced, even though other rows violate it.
SQL> insert into my_table values(1);
insert into my_table values(1)
*
ERROR at line 1:
ORA-00001: unique constraint (USER.MY_CONSTRAINT) violated