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 * from products;
+------------+--------------------+-------+
| product_id | product_name       | price |
+------------+--------------------+-------+
|          1 | iPhone 11          |   400 |
|          2 | Samsung Galaxy A50 |   250 |
+------------+--------------------+-------+

यहां उत्पादों को कॉपी करने के लिए SQL क्वेरी है new_products . नामक नई तालिका में तालिका

mysql> create table new_products
       select *
       from products;

mysql> select * from new_products;
+------------+--------------------+-------+
| 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_products
       select *
       from products;

बोनस पढ़ें:पैरामीटर के साथ MySQL संग्रहीत प्रक्रिया

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

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

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

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

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

बोनस पढ़ें :MySQL में समग्र प्राथमिक कुंजी कैसे बनाएं

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

उपरोक्त प्रश्न केवल तालिका और डेटा की प्रतिलिपि बनाते हैं। वे प्राथमिक कुंजी, अनुक्रमणिका, बाधाओं, ट्रिगर जैसी तालिका वस्तुओं की प्रतिलिपि नहीं बनाएंगे। तालिका संरचना और डेटा को कॉपी करने के लिए, आपको 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 |                |
+--------------+--------------+------+-----+-------------------+----------------+

बोनस पढ़ें :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 में तालिका को डेटाबेस से दूसरे में डुप्लिकेट करना चाहते हैं, तो बस अपने तालिका नामों में डेटाबेस नाम शामिल करें, जैसा कि नीचे बोल्ड में दिखाया गया है

CREATE TABLE destination_db.new_table 
LIKE source_db.existing_table;

INSERT destination_db.new_table 
SELECT *
FROM source_db.existing_table;

पहला स्टेटमेंट MySQL में सोर्स डेटाबेस (जैसे source_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. लारवेल माइग्रेशन:विशिष्ट कुंजी बहुत लंबी है, भले ही निर्दिष्ट हो

  3. CentOS 8 / RHEL 8 . पर MySQL 8.0 कैसे स्थापित करें

  4. सबसे अधिक बिकने वाले उत्पाद प्राप्त करने के लिए MySQL क्वेरी

  5. MySQL PHP असंगति