@ एड्रियन कोर्निश का जवाब सही है। हालांकि, मौजूदा प्राथमिक कुंजी को छोड़ने के लिए एक और चेतावनी है। यदि उस प्राथमिक कुंजी को किसी अन्य तालिका द्वारा विदेशी कुंजी के रूप में उपयोग किया जा रहा है, तो आपको इसे छोड़ने का प्रयास करते समय एक त्रुटि मिलेगी। Mysql के कुछ संस्करणों में त्रुटि संदेश विकृत था (5.5.17 के अनुसार, यह त्रुटि संदेश अभी भी है
alter table parent drop column id;
ERROR 1025 (HY000): Error on rename of
'./test/#sql-a04_b' to './test/parent' (errno: 150).
यदि आप किसी अन्य तालिका द्वारा संदर्भित की जा रही प्राथमिक कुंजी को छोड़ना चाहते हैं, तो आपको पहले उस अन्य तालिका में विदेशी कुंजी छोड़नी होगी। आप उस विदेशी कुंजी को फिर से बना सकते हैं यदि आप प्राथमिक कुंजी को फिर से बनाना चाहते हैं।
इसके अलावा, समग्र कुंजियों का उपयोग करते समय, आदेश महत्वपूर्ण है। इन
1) ALTER TABLE provider ADD PRIMARY KEY(person,place,thing);
and
2) ALTER TABLE provider ADD PRIMARY KEY(person,thing,place);
एक ही बात नहीं कर रहे हैं। वे दोनों तीन क्षेत्रों के उस सेट पर विशिष्टता को लागू करते हैं, हालांकि एक अनुक्रमण दृष्टिकोण से अंतर होता है। खेतों को बाएँ से दाएँ अनुक्रमित किया जाता है। उदाहरण के लिए, निम्नलिखित प्रश्नों पर विचार करें:
A) SELECT person, place, thing FROM provider WHERE person = 'foo' AND thing = 'bar';
B) SELECT person, place, thing FROM provider WHERE person = 'foo' AND place = 'baz';
C) SELECT person, place, thing FROM provider WHERE person = 'foo' AND place = 'baz' AND thing = 'bar';
D) SELECT person, place, thing FROM provider WHERE place = 'baz' AND thing = 'bar';
B ALTER कथन में प्राथमिक कुंजी सूचकांक का
उपयोग कर सकता है 1 A ALTER कथन 2
C में प्राथमिक कुंजी सूचकांक का उपयोग कर सकता है C या तो सूचकांक का
उपयोग कर सकता है D या तो सूचकांक का उपयोग नहीं कर सकता
अनुक्रमणिका 2 में आंशिक अनुक्रमणिका के रूप में पहले दो फ़ील्ड का उपयोग करता है। A इंडेक्स 1 का उपयोग नहीं कर सकता क्योंकि यह इंडेक्स के मध्यवर्ती स्थान भाग को नहीं जानता है। यह अभी भी सिर्फ व्यक्ति पर एक आंशिक सूचकांक का उपयोग करने में सक्षम हो सकता है।
D या तो इंडेक्स का उपयोग नहीं कर सकता क्योंकि यह व्यक्ति को नहीं जानता है।
अधिक जानकारी के लिए यहाँ mysql डॉक्स देखें।