Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में टेबल कॉपी कैसे करें

कभी-कभी आपको MySQL में टेबल कॉपी करने की आवश्यकता हो सकती है। MySQL में टेबल कॉपी करने के कई अलग-अलग तरीके हैं। यहाँ MySQL में टेबल कॉपी करने के चरण दिए गए हैं। आप उनका इस्तेमाल टेबल को दूसरी टेबल पर कॉपी करने, टेबल को एक डेटाबेस से दूसरे डेटाबेस में कॉपी करने, टेबल स्ट्रक्चर को कॉपी करने, डेटा के साथ टेबल कॉपी करने, इंडेक्स के साथ टेबल स्ट्रक्चर को कॉपी करने या टेबल को एक सर्वर से दूसरे सर्वर पर कॉपी करने के लिए कर सकते हैं।

MySQL में टेबल कॉपी कैसे करें

यहाँ MySQL में टेबल कॉपी करने का तरीका बताया गया है। MySQL में टेबल कॉपी करने के लिए अलग-अलग उपयोग के मामले हैं। हम उनमें से प्रत्येक को विस्तार से देखेंगे।

MySQL डेटा को एक टेबल से नई टेबल में कॉपी करें

आम तौर पर, आपको MySQL में तालिका को एक नई तालिका में कॉपी करने की आवश्यकता होती है। इस मामले में, आपको तालिका बनाएं और चयन करें कथन का उपयोग करने की आवश्यकता है जैसा कि नीचे दिखाया गया है

CREATE TABLE new_table 
SELECT column, column2, column3 
FROM
    existing_table;

उपरोक्त क्वेरी में, आपको मौजूदा तालिका के नाम और उन कॉलमों के नाम निर्दिष्ट करने होंगे जिन्हें आप कॉपी करना चाहते हैं, और साथ ही नई तालिका का नाम भी। MySQL आपके SELECT स्टेटमेंट के परिणाम के साथ आपकी नई टेबल को पॉप्युलेट करेगा।

मान लें कि आपके पास एक मौजूदा तालिका है product_list

mysql> select * from product_list;
+------------+--------------------+-------+
| product_id | product_name       | price |
+------------+--------------------+-------+
|          1 | iPhone 11          |   400 |
|          2 | Samsung Galaxy A50 |   250 |
+------------+--------------------+-------+

यहां product_list को कॉपी करने के लिए SQL क्वेरी है तालिका को नई तालिका में new_product_list . कहा जाता है

mysql> create table new_product_list
       select *
       from product_list;

mysql> select * from new_product_list;
+------------+--------------------+-------+
| product_id | product_name       | price |
+------------+--------------------+-------+
|          1 | iPhone 11          |   400 |
|          2 | Samsung Galaxy A50 |   250 |
+------------+--------------------+-------+

कृपया ध्यान दें कि नई तालिका केवल तभी बनाई जाएगी जब वह मौजूद न हो। अन्यथा, आपको एक त्रुटि मिलेगी। जब आप MySQL में तालिका की नकल करते हैं तो त्रुटि होने से बचने के लिए, आप तालिका बनाएं कथन में IF NOT EXIST क्लॉज का उपयोग कर सकते हैं, जैसा कि नीचे दिखाया गया है।

mysql> create table if not exist new_product_list
       select *
       from product_list;

बोनस पढ़ें :MySQL में NOT NULL बाधा कैसे जोड़ें

यदि आप केवल आंशिक डेटा को एक तालिका से नई तालिका में कॉपी करना चाहते हैं, जो कुछ पंक्तियाँ हैं लेकिन सभी नहीं हैं, तो आप अपने SELECT स्टेटमेंट में WHERE कंडीशन का उपयोग कर सकते हैं जैसा कि दिखाया गया है

CREATE TABLE new_table 
SELECT column1, column2, column3 
FROM
    existing_table
WHERE
    conditions;

यहां product_list . से आंशिक डेटा कॉपी करने के लिए SQL क्वेरी है new_products2 . नामक नई तालिका में तालिका

mysql> create table new_products2
       select *
       from product_list
       where product_id=1;

mysql> select * from new_products2;
+------------+--------------+-------+
| product_id | product_name | price |
+------------+--------------+-------+
|          1 | iPhone 11    |   400 |
+------------+--------------+-------+

बोनस पढ़ें :MySQL में डिफ़ॉल्ट बाधा कैसे जोड़ें

MySQL तालिका संरचना को नई तालिका में कॉपी करें

उपरोक्त SQL क्वेरी केवल तालिका और डेटा की प्रतिलिपि बनाती हैं। वे प्राथमिक कुंजी, अनुक्रमणिका, बाधाओं, ट्रिगर जैसी तालिका वस्तुओं की प्रतिलिपि नहीं बनाएंगे। तालिका संरचना और डेटा को कॉपी करने के लिए, आपको LIKE कीवर्ड के साथ CREATE TABLE स्टेटमेंट का उपयोग करना होगा, जैसा कि नीचे दिखाया गया है

CREATE TABLE IF NOT EXISTS new_table LIKE existing_table;

मान लें कि आपके पास आदेश है प्राथमिक कुंजी (आईडी) वाली तालिका

mysql> describe orders;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| id           | int(11)      | NO   | PRI | NULL              | auto_increment |
| product_name | varchar(255) | NO   |     | NULL              |                |
| order_date   | date         | YES  |     | NULL              |                |
| price        | int(11)      | NO   |     | NULL              |                |
| description  | text         | YES  |     | NULL              |                |
| created_at   | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+

और आप आदेशों . की संरचना को कॉपी करना चाहते हैं new_orders . के लिए टेबल। तालिका संरचना को नई तालिका में कॉपी करने के लिए यहां SQL क्वेरी है।

mysql> create table new_orders like orders;

mysql> describe new_orders;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| id           | int(11)      | NO   | PRI | NULL              | auto_increment |
| product_name | varchar(255) | NO   |     | NULL              |                |
| order_date   | date         | YES  |     | NULL              |                |
| price        | int(11)      | NO   |     | NULL              |                |
| description  | text         | YES  |     | NULL              |                |
| created_at   | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+

जैसा कि आप देख सकते हैं, new_orders तालिका में एक प्राथमिक कुंजी फ़ील्ड id भी है। उपरोक्त कथन केवल तालिका संरचना की प्रतिलिपि बनाएगा लेकिन डेटा नहीं। जैसा कि अगले भाग में दिखाया गया है, आपको अलग से डेटा कॉपी करने की आवश्यकता है।

बोनस पढ़ें :MySQL प्रति समूह शीर्ष एन पंक्तियों का चयन करें

MySQL डेटा को एक टेबल से मौजूदा टेबल पर कॉपी करें

उपरोक्त कथन पुरानी तालिका की संरचना के साथ नई तालिका बनाएगा, लेकिन यह एक खाली तालिका होगी। फिर आपको पुरानी तालिका से नई तालिका में डेटा कॉपी करने के लिए INSERT कथन का उपयोग करने की आवश्यकता है।

INSERT new_table
SELECT * FROM existing_table;

आदेश से डेटा कॉपी करने के लिए SQL क्वेरी यहां दी गई है मौजूदा तालिका में new_orders

mysql> insert new_orders
       select * from orders;

mysql> select * from orders;
+----+--------------+------------+-------+-------------+---------------------+
| id | product_name | order_date | price | description | created_at          |
+----+--------------+------------+-------+-------------+---------------------+
|  1 | A            | 2020-07-01 |   150 | New product | 2020-06-01 00:00:00 |
|  2 | B            | 2020-07-01 |   235 | Old product | 2020-06-15 00:00:00 |
+----+--------------+------------+-------+-------------+---------------------+

बोनस पढ़ें:MySQL कॉपी डेटाबेस

MySQL कॉपी टेबल एक डेटाबेस से दूसरे डेटाबेस में

यदि आप MySQL में तालिका को डेटाबेस से दूसरे में डुप्लिकेट करना चाहते हैं, तो उपरोक्त SQL क्वेरी का उपयोग करते समय बस अपने तालिका नामों में डेटाबेस नाम शामिल करें, जैसा कि नीचे बोल्ड में दिखाया गया है

CREATE TABLE destination_db.new_table 
LIKE source_db.existing_table;

INSERT destination_db.new_table 
SELECT *
FROM source_db.existing_table;

उपरोक्त पहला SQL कथन स्रोत डेटाबेस से MySQL में तालिका संरचना की नकल करेगा (जैसे source_db ) दूसरे के लिए (जैसे destination_db ) दूसरा स्टेटमेंट डेटा को एक टेबल से दूसरी टेबल में कॉपी करेगा।

बदलें source_db और destination_db उपरोक्त प्रश्नों में क्रमशः स्रोत और गंतव्य डेटाबेस के साथ।

उम्मीद है, यह लेख आपको MySQL में टेबल कॉपी करने में मदद करेगा। जब आप बड़ी संख्या में रिकॉर्ड के साथ MySQL में टेबल कॉपी करते हैं, तो कृपया सावधान रहें, क्योंकि इसमें बहुत समय और संसाधन लग सकते हैं।

Ubiq मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक अतुल्यकालिक दास से MySQL गैलेरा क्लस्टर को कैसे पुनर्प्राप्त करें

  2. SQLSTATE [HY000] [1045] CakePHP का उपयोग कर उपयोगकर्ता 'उपयोगकर्ता नाम' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध

  3. MySQL में संख्याओं की एक श्रृंखला उत्पन्न करना

  4. कैसे बैकअप और पुनर्स्थापित करने के लिए (निर्यात और आयात) MySQL डेटाबेस ट्यूटोरियल

  5. स्वचालित रूप से डेटाबेस स्कीमा बनाने के लिए स्प्रिंग बूट प्राप्त करने में असमर्थ