MySQL में किसी मौजूदा टेबल की **संरचना (स्ट्रक्चर) कॉपी** करके नई टेबल बनाने के लिए CREATE TABLE ... LIKE का उपयोग करें। यह कॉलम, इंडेक्स, कंस्ट्रेंट कॉपी करता है लेकिन **डेटा नहीं**।
सिंटैक्स
CREATE TABLE new_table_name LIKE existing_table_name;
उदाहरण के साथ समझें
मूल टेबल बनाएं:
CREATE TABLE ShowCreateTableCommand (
Id INT NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(20),
LastName VARCHAR(20),
Age INT,
TotalMarks INT,
PRIMARY KEY(Id)
);
संरचना देखें:
DESC ShowCreateTableCommand;
आउटपुट:
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| FirstName | varchar(20) | YES | | NULL | |
| LastName | varchar(20) | YES | | NULL | |
| Age | int(11) | YES | | NULL | |
| TotalMarks | int(11) | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
पूर्ण DDL देखें:
SHOW CREATE TABLE ShowCreateTableCommand\G
नई टेबल बनाएं (संरचना कॉपी)
CREATE TABLE StudentInformationDemo LIKE ShowCreateTableCommand;
नई टेबल की संरचना जांचें:
SHOW CREATE TABLE StudentInformationDemo\G
आउटपुट (समान संरचना):
CREATE TABLE `studentinformationdemo` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`FirstName` varchar(20) DEFAULT NULL,
`LastName` varchar(20) DEFAULT NULL,
`Age` int(11) DEFAULT NULL,
`TotalMarks` int(11) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
क्या कॉपी होता है और क्या नहीं
| कॉपी होता है | कॉपी नहीं होता |
|---|---|
| कॉलम परिभाषाएं (नाम, टाइप, NULL, डिफॉल्ट) | डेटा (पंक्तियाँ) |
| इंडेक्स (PRIMARY, UNIQUE, INDEX) | ट्रिगर |
| फॉरेन की कंस्ट्रेंट | पार्टीशनिंग |
| स्टोरेज इंजन (InnoDB, आदि) | ऑटो_इन्क्रीमेंट मान (1 से शुरू) |
| कैरेक्टर सेट और कॉलेशन | विदेशी कुंजी संदर्भ (केवल परिभाषा) |
डेटा भी कॉपी करने के लिए
-- संरचना + डेटा दोनों
CREATE TABLE new_table AS SELECT * FROM existing_table;
नोट: यह तरीका इंडेक्स, कंस्ट्रेंट, AUTO_INCREMENT कॉपी **नहीं** करता।
संपूर्ण क्लोन (संरचना + डेटा + इंडेक्स)
CREATE TABLE new_table LIKE existing_table;
INSERT INTO new_table SELECT * FROM existing_table;
उपयोग के मामले
- टेस्टिंग के लिए प्रोडक्शन टेबल की कॉपी
- माइग्रेशन से पहले बैकअप टेबल बनाना
- समान संरचना वाली कई टेबल जल्दी बनाना
- स्कीमा तुलना और संस्करण नियंत्रण