उत्पादन डेटा की प्रतिलिपि के साथ कुछ माइग्रेशन स्क्रिप्ट का परीक्षण करते समय (स्क्रिप्ट विकास डेटा के साथ ठीक चलती हैं) मुझे एक जिज्ञासु स्थिति मिली। एक CONSTRAINT बदल गया है इसलिए मैं DROP + ADD कमांड जारी कर रहा हूं:
ALTER TABLE A_DUP_CALLE
DROP CONSTRAINT A_DUP_CALLE_UK1;
ALTER TABLE A_DUP_CALLE
ADD CONSTRAINT A_DUP_CALLE_UK1 UNIQUE (
CONTROL_ID,
CALLE_AYTO_DUPL
)
ENABLE;
DROP कमांड ने ठीक काम किया लेकिन ADD एक विफल रहा। अब, मैं एक दुष्चक्र में हूँ। मैं बाधा को नहीं छोड़ सकता क्योंकि यह मौजूद नहीं है (आरंभिक बूंद अपेक्षित रूप से काम करती है):
ORA-02443: बाधा नहीं गिरा सकता - कोई भी बाधा नहीं
और मैं इसे नहीं बना सकता क्योंकि नाम पहले से मौजूद है:
ORA-00955: नाम पहले से ही किसी मौजूदा ऑब्जेक्ट द्वारा उपयोग किया जाता है
मैं A_DUP_CALLE_UK1
SQL डेवलपर के खोज बॉक्स में टाइप करता हूँ और ... वहाँ है! मालिक, टेबल का नाम, टेबलस्केप ... सब कुछ मेल खाता है: यह एक ही नाम के साथ एक अलग वस्तु नहीं है, यह है अपने मूल बाधा। बाधा विवरण में तालिका दिखाई देती है, लेकिन तालिका के विवरण में बाधा दिखाई नहीं देती है।
मेरे सवाल:
- इसके लिए क्या स्पष्टीकरण है?
- जब मैं लाइव सर्वर में वास्तविक अपग्रेड करता हूं तो मैं यह कैसे सुनिश्चित कर सकता हूं?
(सर्वर 10g XE है, टैग बनाने के लिए मेरे पास पर्याप्त प्रतिष्ठा नहीं है।)