Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORA-00955 नाम पहले से ही किसी मौजूदा वस्तु द्वारा उपयोग किया जा रहा है

शायद एक INDEX है PRIMARY KEY CONSTRAINT . से संबद्ध , और इसे PK_B . के नाम से भी जाना जाता है ।

आप इसे इस प्रकार देख सकते हैं:

SELECT * FROM USER_INDEXES WHERE TABLE_NAME='<table_name>';

अगर यह सच है, तो करें:

ALTER INDEX "PK_B" RENAME TO "PK_XYZ";

अपडेट :ALTER INDEX . के संबंध में बयान, कुछ महत्वपूर्ण बिंदु जैसा कि जस्टिन ने टिप्पणियों में उल्लेख किया है

Oracle परोक्ष रूप से एक UNIQUE बनाता है PRIMARY KEY CONSTRAINT . का समर्थन करने के लिए अनुक्रमणिका . चूंकि, अनुक्रमणिका प्राथमिक कुंजी के समान नाम की है, और अब जबकि प्राथमिक कुंजी को संशोधित किया जा रहा है, यह बेहतर है पुरानी प्राथमिक कुंजी की परिभाषा के अनुसार सूचकांक को फिर से गिराने और फिर से बनाने के लिए।

मेरा निष्कर्ष:

  • प्राथमिक कुंजी बाधा एक अद्वितीय अनुक्रमणिका के माध्यम से लागू की जाती है।
  • यदि Oracle पहले से ही एक अनुक्रमणिका पाता है - अद्वितीय या गैर-अद्वितीय - यह प्राथमिक कुंजी के लिए इसका उपयोग करता है।
  • यदि अनुक्रमणिका प्रारंभ में गैर-अद्वितीय के रूप में बनाई गई थी, तो यह गैर-अद्वितीय के रूप में दिखाई देती रहेगी, हालांकि यह वास्तव में एक अद्वितीय अनुक्रमणिका होगी।

अरुप द्वारा एक अच्छा प्रदर्शन और अन्य पहलुओं पर भी काफी विस्तृत:प्राथमिक कुंजियाँ विशिष्टता की गारंटी देती हैं? फिर से सोचें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL में:आप तालिका में वर्तमान दिनांक + समय कैसे सम्मिलित करते हैं?

  2. ओआरए 01400 और ओआरए 02296:नल को सम्मिलित नहीं कर सकता या अतिरिक्त कॉलम गुणों को न्यूल में संशोधित नहीं कर सकता

  3. एक डेटाबेस/टेबल से दूसरे डेटाबेस/टेबल में डेटा कॉपी कैसे करें

  4. सी # में ओरेकल फ़ंक्शन से अनुक्रम वापसी तालिका से बाहर निकलने में त्रुटि जहां फ़ंक्शन SQL सर्वर पर dblink का उपयोग करता है

  5. क्या किसी सरणी से डेटा सम्मिलित करने के लिए FORALL का उपयोग करने का कोई तरीका है?