कम्पोजिट प्राइमरी की जोड़ने के लिए ALTER TABLE ... ADD PRIMARY KEY का उपयोग करें
एक कम्पोजिट प्राइमरी की दो या दो से अधिक कॉलम का संयोजन होती है जो प्रत्येक पंक्ति को विशिष्ट रूप से पहचानती है।
चरण-दर-चरण उदाहरण
1. बिना प्राइमरी की के टेबल बनाएं
mysql> CREATE TABLE CompositePrimaryKey (
-> Id INT,
-> StudentName VARCHAR(100),
-> Age INT
-> );
2. वर्तमान संरचना जांचें
mysql> DESC CompositePrimaryKey;
आउटपुट: कोई PRI नहीं दिखाता।
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | | NULL | | | StudentName | varchar(100) | YES | | NULL | | | Age | int(11) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+
3. कम्पोजिट प्राइमरी की जोड़ें
mysql> ALTER TABLE CompositePrimaryKey ADD PRIMARY KEY(Id, StudentName);
4. सत्यापित करें
mysql> DESC CompositePrimaryKey;
आउटपुट: दोनों कॉलम पर PRI दिखाता है।
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | Id | int(11) | NO | PRI | NULL | | | StudentName | varchar(100) | NO | PRI | NULL | | | Age | int(11) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+
महत्वपूर्ण नियम
- कम्पोजिट की के सभी कॉलम
NOT NULLहोने चाहिए (MySQL स्वचालित रूप से इसे लागू करता है)। - कॉलम का क्रम मायने रखता है: क्वेरी बाएं से दाएं क्रम का लाभ उठा सकती हैं।
- एक टेबल में केवल एक प्राइमरी की हो सकती है (चाहे सिंगल या कम्पोजिट)।
- मौजूदा डेटा में की कॉलम के संयोजन के लिए डुप्लिकेट नहीं होने चाहिए।
हटाने के लिए
ALTER TABLE टेबल_नाम DROP PRIMARY KEY;