समस्या:
आप डेटाबेस में किसी तालिका के लिए प्राथमिक कुंजी बनाना चाहते हैं।
उदाहरण:
हम product
।
समाधान 1 (नई तालिका):
CREATE TABLE product ( id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, producer VARCHAR(100) NOT NULL, price DECIMAL(7,2) );
चर्चा:
प्राथमिक कुंजी के रूप में परिभाषित कॉलम के साथ एक नई तालिका बनाने के लिए, आप कीवर्ड PRIMARY KEY
का उपयोग कर सकते हैं उस कॉलम की परिभाषा के अंत में। हमारे उदाहरण में, हम तालिका बनाते हैं product
CREATE TABLE
का उपयोग करके कोष्ठक में कॉलम और उनके संबंधित डेटा प्रकारों के नाम के साथ खंड। हम इस तालिका की प्राथमिक कुंजी के रूप में कॉलम आईडी चुनते हैं, इसलिए हम PRIMARY KEY
निर्दिष्ट करते हैं इस कॉलम की परिभाषा के अंत में।
ध्यान रखें कि आप किसी तालिका के लिए केवल एक प्राथमिक कुंजी बना सकते हैं।
समाधान 2 (नई तालिका):
CREATE TABLE product ( name VARCHAR(100) NOT NULL, producer VARCHAR(100) NOT NULL), price DECIMAL(7,2), PRIMARY KEY(name, producer) );
चर्चा:
एक नई तालिका के निर्माण के दौरान प्राथमिक कुंजी को परिभाषित करने का दूसरा तरीका PRIMARY KEY
के साथ है स्तंभ परिभाषाओं के अंत में खंड। इस मामले में, हम PRIMARY KEY
के तर्क के रूप में एक या अधिक कॉलम निर्दिष्ट करते हैं खंड; ये स्तंभ तालिका के लिए प्राथमिक कुंजी बन जाते हैं।
ध्यान दें कि यह दृष्टिकोण कई स्तंभों के साथ निर्मित प्राथमिक कुंजियों की अनुमति देता है। इस उदाहरण में, तालिका के लिए प्राथमिक कुंजी product
दो कॉलम से बनता है:name
और producer
।
समाधान 3 (मौजूदा तालिका):
ALTER TABLE product ADD PRIMARY KEY (id);
चर्चा:
किसी मौजूदा तालिका के लिए प्राथमिक कुंजी को परिभाषित करना भी संभव है जिसमें अभी तक प्राथमिक कुंजी नहीं है।
यहां, तालिका को ALTER TABLE
. का उपयोग करके बदल दिया गया है खंड। तालिका (हमारे उदाहरण में, product
) कीवर्ड ALTER TABLE
. के नाम पर रखा गया है , फिर ADD PRIMARY KEY
क्लॉज प्राथमिक कुंजी के रूप में उपयोग किए जाने वाले कॉलम के नाम के साथ आता है। ध्यान दें कि इस आदेश के निष्पादित होने से पहले तालिका पहले से मौजूद होनी चाहिए और तालिका में पहले से ही प्राथमिक कुंजी नहीं होनी चाहिए।
समाधान 4 (मौजूदा तालिका, प्राथमिक कुंजी बाधा):
ALTER TABLE product ADD CONSTRAINT PK_product_id PRIMARY KEY (id);
चर्चा:
यदि आप किसी मौजूदा तालिका के लिए प्राथमिक कुंजी बाधा का नाम देना चाहते हैं तो इस तरह की एक क्वेरी का प्रयोग करें। यहां, प्राथमिक कुंजी बाधा, PK_product_id
, कॉलम id
. से उत्पन्न होता है . यदि आप बाधा नाम निर्दिष्ट नहीं करते हैं, तो डेटाबेस एक डिफ़ॉल्ट बाधा नाम उत्पन्न करता है (नाम डेटाबेस के अनुसार अलग-अलग होगा)।