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

MySQL में LIKE ऑपरेटर से पुरानी टेबल की संरचना कॉपी करके नई टेबल कैसे बनाएं?

CREATE TABLE ... LIKE सिंटैक्स

MySQL में किसी मौजूदा टेबल की **सटीक संरचना** (कॉलम, इंडेक्स, डेटा प्रकार, डिफ़ॉल्ट मान) कॉपी करके नई टेबल बनाने के लिए LIKE क्लॉज का उपयोग करें। यह डेटा **कॉपी नहीं करता**, केवल स्कीमा कॉपी करता है।

सिंटैक्स

CREATE TABLE newTableName LIKE existingTableName;

चरण-दर-चरण उदाहरण

1. मूल टेबल बनाएं और डेटा डालें

mysql> CREATE TABLE Employee (
    -> EmployeeId INT,
    -> EmployeeName VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.54 sec)

mysql> INSERT INTO Employee VALUES(1, 'Carol');
mysql> INSERT INTO Employee VALUES(2, 'John');
mysql> INSERT INTO Employee VALUES(3, 'Johnson');

2. LIKE से नई टेबल बनाएं

mysql> CREATE TABLE StudentModifyTableDemo LIKE Employee;
Query OK, 0 rows affected (0.50 sec)

3. संरचना जांचें

mysql> DESC StudentModifyTableDemo;
+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| EmployeeId   | int(11)      | YES  |     | NULL    |       |
| EmployeeName | varchar(100) | YES  |     | NULL    |       |
+--------------+--------------+------+-----+---------+-------+
2 rows in set (0.12 sec)

संरचना **समान** है (कॉलम नाम, प्रकार, NULL, डिफ़ॉल्ट)।

4. डेटा कॉपी करें (अलग क्वेरी)

mysql> INSERT INTO StudentModifyTableDemo SELECT * FROM Employee;
Query OK, 3 rows affected (0.16 sec)
Records: 3 Duplicates: 0 Warnings: 0

5. डेटा पुष्टि करें

mysql> SELECT * FROM StudentModifyTableDemo;
+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 1          | Carol        |
| 2          | John         |
| 3          | Johnson      |
+------------+--------------+
3 rows in set (0.00 sec)

LIKE क्या कॉपी करता है / नहीं करता

कॉपी होता हैकॉपी नहीं होता
कॉलम परिभाषा (नाम, प्रकार, आकार)डेटा (पंक्तियाँ)
इंडेक्स (PRIMARY, UNIQUE, INDEX)AUTO_INCREMENT मान (रीसेट होता है)
डिफ़ॉल्ट मानट्रिगर
कॉलम टिप्पणियाँविदेशी कुंजी बाधाएँ (कुछ संस्करणों में)
कैरेक्टर सेट / कॉलेशनपार्टीशन परिभाषा

वैकल्पिक: CREATE TABLE ... AS SELECT

संरचना **और** डेटा दोनों कॉपी करने के लिए:

CREATE TABLE newTable AS SELECT * FROM oldTable;

यह इंडेक्स/कंस्ट्रेंट **नहीं** कॉपी करता, केवल कॉलम और डेटा।

  1. - MySQL में DATE_ADD से 45 दिन जोड़कर नए कॉलम में कैसे प्रदर्शित करें?

    MySQL में DATE/DATETIME कॉलम में दिन जोड़ने और परिणाम को नए कॉलम में प्रदर्शित करने के लिए DATE_ADD() फंक्शन (या + INTERVAL सिंटैक्स) का उपयोग करें। यह देय तारीख, समाप्ति तारीख, शेड्यूलिंग गणना के लिए आवश्यक है। उदाहरण: DueTime में 45 दिन जोड़ना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable19

  1. - MySQL में AND और OR ऑपरेटर के साथ विशिष्ट रिकॉर्ड कैसे प्राप्त करें

    उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2015 VALUES (4, Robert, US); क्वेरी StudentName=David OR (StudentCountryName=UK AND StudentId=3): WHERE StudentName = David OR StudentCountryName = UK AND StudentId = 3; परिणाम +-----------+-------------+--------------------+ | Stu

  1. - MySQL में टेबल बदलें ताकि परिकलित औसत स्कोर फ़ील्ड INSERT/UPDATE के बिना दिखे

    समाधान GENERATED ALWAYS AS ... VIRTUAL कॉलम का उपयोग करें। सिंटैक्स ALTER TABLE yourTableName ADD COLUMN yourColumnName yourDataType GENERATED ALWAYS AS ((col1 + col2 + ... + colN) / N) VIRTUAL; उदाहरण टेबल बनाएं: INSERT INTO demo32 VALUES (30,60), (20,40), (35,35); वर्चुअल कॉलम जोड़ें GENERATE