CREATE TABLE ... LIKE के साथ टेबल स्ट्रक्चर कॉपी करना
मौजूदा टेबल की संरचना (कॉलम्स, इंडेक्सेस, कंस्ट्रेंट्स) कॉपी करके नई टेबल बनाने के लिए CREATE TABLE ... LIKE का उपयोग करें। ध्यान दें: यह केवल स्ट्रक्चर कॉपी करता है, डेटा नहीं।
पहली टेबल बनाएं:
mysql> CREATE TABLE DemoTable1 (
EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName VARCHAR(50)
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable1 (EmployeeName) VALUES ('Tom');
mysql> INSERT INTO DemoTable1 (EmployeeName) VALUES ('Mike');
mysql> INSERT INTO DemoTable1 (EmployeeName) VALUES ('Emma');
mysql> INSERT INTO DemoTable1 (EmployeeName) VALUES ('Sam');
पहली टेबल के रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable1;
आउटपुट:
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | 1 | Tom | | 2 | Mike | | 3 | Emma | | 4 | Sam | +------------+--------------+
पहली टेबल जैसी संरचना वाली नई टेबल बनाएं:
mysql> CREATE TABLE DemoTable2 LIKE DemoTable1;
आउटपुट: Query OK, 0 rows affected
नई टेबल का विवरण देखें:
mysql> DESC DemoTable2;
आउटपुट:
+--------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+----------------+ | EmployeeId | int(11) | NO | PRI | NULL | auto_increment | | EmployeeName | varchar(50) | YES | | NULL | | +--------------+-------------+------+-----+---------+----------------+
महत्वपूर्ण बिंदु:
- क्या कॉपी होता है: कॉलम परिभाषाएं, इंडेक्सेस, प्राइमरी की, फॉरेन की, डिफॉल्ट मान, ऑटो_इन्क्रीमेंट सेटिंग
- क्या कॉपी नहीं होता: डेटा (रिकॉर्ड्स), ट्रिगर्स, पार्टीशनिंग, फॉरेन की कंस्ट्रेंट्स (कुछ संस्करणों में)
- डेटा भी कॉपी करने के लिए:
CREATE TABLE DemoTable2 AS SELECT * FROM DemoTable1;(लेकिन यह इंडेक्सेस/कंस्ट्रेंट्स कॉपी नहीं करता) - दोनों के लिए: पहले LIKE से स्ट्रक्चर कॉपी करें, फिर
INSERT INTO DemoTable2 SELECT * FROM DemoTable1;
उपयोग के मामले: टेस्ट टेबल बनाना, बैकअप स्ट्रक्चर, माइग्रेशन स्क्रिप्ट्स में स्कीमा रिप्लिकेशन।