अगर मैं आपको सही ढंग से प्राप्त करता हूं, तो आप ओरेकल से पुराने डुप्लिकेट मानों को अनदेखा करने की अपेक्षा करते हैं और नए मानों को केवल तभी अनुमति देते हैं जब वे बाधा को पूरा करते हैं। त्रुटि वापस आ जाती है क्योंकि जब आप एक UNIQUE
. जोड़ते हैं बाधा, ओरेकल मूल्यों की जांच करने के लिए कॉलम पर अद्वितीय अनुक्रमणिका बनाता है, लेकिन आपकी तालिका में पहले से ही डुप्लिकेट मान हैं, इसलिए यह विफल हो जाता है। मैं पहले गैर-अद्वितीय अनुक्रमणिका बनाउंगा, फिर बाधा जोड़ूंगा ताकि यह स्वचालित रूप से अद्वितीय अनुक्रमणिका बनाने के बजाय आपके मौजूदा गैर-अद्वितीय अनुक्रमणिका का उपयोग कर सके जो विफल हो जाएगा:
create index arc_ix on arc (name);
alter table arc add constraint arc_uq unique (name) enable novalidate;