Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में CREATE TABLE LIKE से मौजूदा टेबल जैसी नई टेबल बनाएं

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;

उपयोग के मामले

  • टेस्टिंग के लिए प्रोडक्शन टेबल की कॉपी
  • माइग्रेशन से पहले बैकअप टेबल बनाना
  • समान संरचना वाली कई टेबल जल्दी बनाना
  • स्कीमा तुलना और संस्करण नियंत्रण
  1. - MySQL क्वेरी: टेबल से कुछ मानों को बाहर करें

    टेबल से कुछ मानों को बाहर करने के लिए NOT IN() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable791 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(100) ); Query OK, 0 rows affected (0.61 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysq

  1. - MySQL में IN() क्लॉज़ के साथ एक क्वेरी में रिकॉर्ड कैसे डिलीट करें?

    MySQL में एक ही क्वेरी में एकाधिक विशिष्ट रिकॉर्ड डिलीट करने के लिए, DELETE स्टेटमेंट के साथ IN() ऑपरेटर का उपयोग करें। यह एकाधिक DELETE स्टेटमेंट चलाने से अधिक कुशल और पठनीय है। उदाहरण: विशिष्ट StudentId वाले रिकॉर्ड डिलीट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1922 ( StudentI

  1. - MySQL में DISTINCT कॉलम से औसत कैसे चुनें?

    MySQL में विशिष्ट (DISTINCT) मानों के आधार पर औसत निकालने के लिए, सबक्वेरी में DISTINCT का उपयोग करके डुप्लिकेट हटाएं, फिर बाहरी क्वेरी में AVG() लागू करें। उदाहरण: विशिष्ट छात्र-मान संयोजनों का औसत डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1934 ( StudentName VARCHAR(20), StudentMa