एकाधिक कॉलम पर बने कंपोजिट (संयुक्त) PRIMARY KEY को ALTER TABLE ... DROP PRIMARY KEY से हटाया जा सकता है।
उदाहरण
room_allotment टेबल में id और Name पर कंपोजिट PK है:
mysql> DESCRIBE room_allotment; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | 0 | | | Name | varchar(20) | NO | PRI | | | | RoomNo | int(11) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+
कंपोजिट PRIMARY KEY हटाएं
mysql> ALTER TABLE room_allotment DROP PRIMARY KEY; Query OK, 0 rows affected (0.19 sec) mysql> DESCRIBE room_allotment; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | NO | | 0 | | | Name | varchar(20) | NO | | | | | RoomNo | int(11) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+
परिणाम विश्लेषण
- दोनों कॉलम (
id,Name) सेPRIगायब Keyकॉलम खालीNullमान नहीं बदलते (NOT NULL अलग कंस्ट्रेंट है)- पूरा कंपोजिट PK एक कमांड से हट जाता है
महत्वपूर्ण नोट
-
<ली>FOREIGN KEY रेफरेंस: यदि अन्य टेबल इस कंपोजिट PK को रेफरेंस करते हैं, तो पहले वे FK हटाने होंगे
- AUTO_INCREMENT: यदि कोई कॉलम AUTO_INCREMENT है, तो पहले वह हटाना होगा
- सिंगल कमांड: कंपोजिट PK के लिए अलग-अलग कॉलम ड्रॉप करने की जरूरत नहीं
संबंधित ऑपरेशन
-- कंपोजिट PK जोड़ना ALTER TABLE room_allotment ADD PRIMARY KEY (id, Name); -- PK नाम पता करना SHOW CREATE TABLE room_allotment;