2011-09-08 17 views
36

बनाएं क्या इस कोड के बीच अंतर है:प्राथमिक कुंजी परिभाषा टेबल बयान

CREATE TABLE samples (
    sampleid INT(11) NOT NULL AUTO_INCREMENT, 
    sampledate DATE NOT NULL, 
    location VARCHAR(25) NOT NULL, 
    PRIMARY KEY (sampleid) 
) 
ENGINE=InnoDB; 

और इस:

CREATE TABLE samples (
    sampleid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    sampledate DATE NOT NULL, 
    location VARCHAR(25) NOT NULL, 
) 
ENGINE=InnoDB; 

कोड?

तो एक अलग प्राथमिक कुंजी कथन या कॉलम परिभाषा के हिस्से के रूप में। कॉलम परिभाषा में अद्वितीय इंडेक्स और अद्वितीय कीवर्ड के लिए वही प्रश्न।

+0

दोनों लागू करना चाहते हैं तो दूसरी विधि का उपयोग नहीं किया जा सकता है, है ना? यह लिखने का सिर्फ तरीका है। –

+0

मुझे यह भी लगता है कि दोनों एक जैसे हैं। – giga

+1

मैं पूरी तरह से सहमत नहीं हूं, @ थॉमसट्रटर – waanders

उत्तर

39

दूसरा वाक्यविन्यास केवल एक शॉर्टकट है जो आपको कॉलम निर्दिष्ट करने और एक खंड में उस पर एक अनुक्रमणिका जोड़ने की अनुमति देता है।

यह उन मामलों में ठीक काम करता है जहां आप बस एक कॉलम बनाना चाहते हैं और उस पर एक इंडेक्स जोड़ना चाहते हैं।

यदि आप कुछ और जटिल करना चाहते हैं, तो आपको पहले वाक्यविन्यास का उपयोग करना होगा, जैसे कि एकल कॉलम के बजाय एकाधिक कॉलम पर आधारित इंडेक्स जोड़ना, या यदि आप किसी मौजूदा कॉलम पर इंडेक्स जोड़ रहे हैं या बदल रहे हैं ; यानी, आप एक ही समय में कॉलम और इंडेक्स नहीं बना रहे हैं।

+4

धन्यवाद! मुझे तर्क के साथ जवाब पसंद है – waanders

0

बिल्ली को त्वचा के कई तरीके हैं और ऊपर 2 उदाहरण केवल 2 हैं। वे समान हैं। कोई फर्क नहीं पड़ता।

+0

का उत्तर देखें, मैं पूरी तरह से सहमत नहीं हूं, @ थॉमस्रूटर – waanders

+0

का उत्तर देखने के लिए दो सटीक होने के लिए वह सटीक वही काम करता है, लेकिन पूर्व उदाहरण से अधिक सुविधाओं की अनुमति देता है उत्तरार्द्ध। –

1

MySQL प्राथमिक कुंजी को गतिशील रूप से प्राथमिक कुंजी सेट करने की अनुमति देने के लिए प्राथमिक कुंजी निर्देश का उपयोग करने की अनुमति देता है। कन्स्ट्रक्टर को तर्क के रूप में प्राथमिक कुंजी की आपूर्ति केवल कॉलम बनाने पर ही कहा जा सकता है। प्राथमिक कुंजी (एक्स), प्राथमिक कुंजी (वाई), प्राथमिक कुंजी (जेड) बाद के प्रश्नों पर प्राथमिक कुंजी बदलने की अनुमति देता है।

1

जिस तरह से मैं इसे देखता हूं .. पहली विधि समग्र कुंजी बनाने के लिए उपयोग की जाती है। जबकि दूसरी विधि (मेरे लिए अधिक पठनीय) मुख्य रूप से उपयोग की जाती है यदि तालिका में केवल प्राथमिक कुंजी है।

यदि आप समग्र कुंजी

संबंधित मुद्दे