MySQL में किसी टेबल से प्राइमरी की को हटाने के लिए ALTER TABLE ... DROP PRIMARY KEY स्टेटमेंट का उपयोग किया जाता है। यह ऑपरेशन टेबल संरचना को संशोधित करता है लेकिन डेटा को प्रभावित नहीं करता।
सिंटैक्स
ALTER TABLE your_table_name DROP PRIMARY KEY;
व्यावहारिक उदाहरण
1. प्राइमरी की के साथ टेबल बनाएं
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL PRIMARY KEY
);
Query OK, 0 rows affected (0.58 sec)
2. टेबल संरचना जांचें (प्राइमरी की दिखाता है)
mysql> DESC DemoTable; +--------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------+------+-----+---------+-------+ | UserId | int(11) | NO | PRI | NULL | | +--------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec)
3. प्राइमरी की हटाएं
mysql> ALTER TABLE DemoTable DROP PRIMARY KEY; Query OK, 0 rows affected (1.51 sec) Records: 0 Duplicates: 0 Warnings: 0
4. फिर से संरचना जांचें (प्राइमरी की गायब)
mysql> DESC DemoTable; +--------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------+------+-----+---------+-------+ | UserId | int(11) | NO | | NULL | | +--------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec)
महत्वपूर्ण विचार
- डेटा अप्रभावित रहता है: केवल कंस्ट्रेंट हटता है, पंक्तियाँ नहीं
- AUTO_INCREMENT बना रहता है: यदि कॉलम AUTO_INCREMENT था, तो यह विशेषता बनी रहती है
- विदेशी कुंजी: यदि अन्य टेबल्स इस प्राइमरी की को रेफरेंस करती हैं, तो पहले उन विदेशी कुंजियों को हटाना होगा
- NOT NULL: कॉलम NOT NULL बना रहता है जब तक इसे स्पष्ट रूप से बदला न जाए
प्राइमरी की दोबारा जोड़ना
ALTER TABLE DemoTable ADD PRIMARY KEY (UserId);
संयुक्त प्राइमरी की के लिए
ALTER TABLE DemoTable DROP PRIMARY KEY; ALTER TABLE DemoTable ADD PRIMARY KEY (col1, col2);