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

MySQL इन्सर्ट इन सेलेक्ट

कभी-कभी आपको MySQL में एक तालिका से दूसरी तालिका में कई मान सम्मिलित करने की आवश्यकता हो सकती है। इन मानों को अपने INSERT sql स्टेटमेंट में मैन्युअल रूप से दर्ज करना कठिन हो सकता है। MySQL INSERT INTO SELECT क्वेरी के साथ तालिका में मान सम्मिलित करने के लिए आसानी से SELECT कथन का उपयोग करने का तरीका यहां दिया गया है। आप इसका उपयोग MySQL तालिकाओं को शीघ्रता से भरने के लिए कर सकते हैं।

MySQL इन्सर्ट इन सेलेक्ट

यहां INSERT INTO SELECT स्टेटमेंट का उपयोग करके MySQL तालिकाओं में मान सम्मिलित करने के चरण दिए गए हैं। मान लें कि आपके पास निम्न तालिका है new_orders(id, order_date, amount)

mysql> create table new_orders(id int, order_date date, amount int);

यहां MySQL INSERT INTO SELECT स्टेटमेंट का सिंटैक्स दिया गया है।

INSERT INTO table_name(column_list)
SELECT 
   select_list 
FROM 
   another_table
WHERE
   condition;

उपरोक्त क्वेरी में, हम VALUES क्लॉज के बजाय एक SELECT स्टेटमेंट का उपयोग करते हैं। किसी अन्य तालिका से एक या अधिक पंक्तियों को त्वरित रूप से कॉपी करना, या किसी अन्य तालिका से सारांश डेटा को भी कॉपी करना बहुत उपयोगी है।

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

आइए MySQL INSERT INTO SELECT के लिए कुछ उदाहरण देखें।

MySQL कई पंक्तियों में सम्मिलित करें

INSERT INTO SELECT स्टेटमेंट का उपयोग करके तालिका में एकाधिक पंक्तियों को सम्मिलित करने के लिए SQL क्वेरी यहां दी गई है।

mysql> insert into new_orders
       select id, order_date, item_price
       from orders;

mysql> select * from new_orders;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-01 |    150 |
|    2 | 2020-07-01 |    235 |
+------+------------+--------+

आप INSERT क्लॉज के बाद कॉलम नामों को छोड़ सकते हैं यदि SELECT स्टेटमेंट में कॉलम नाम आपकी टेबल के समान हैं।

बोनस पढ़ें :MySQL डुप्लीकेट रिकॉर्ड हटाएं

MySQL एक ही टेबल से चयन में डालें

INSERT INTO SELECT स्टेटमेंट का उपयोग करके एक ही टेबल से पंक्तियों को सम्मिलित करने के लिए SQL क्वेरी यहां दी गई है।

mysql> insert into new_orders
       select *
       from new_orders;

mysql> select * from new_orders;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-01 |    150 |
|    2 | 2020-07-01 |    235 |
|    1 | 2020-07-01 |    150 |
|    2 | 2020-07-01 |    235 |
+------+------------+--------+

उपरोक्त क्वेरी में, हम एक टेबल में सभी कॉलम के लिए MySQL INSERT INTO SELECT का उपयोग करते हैं।

बोनस पढ़ें :संग्रहित प्रक्रिया कैसे निष्पादित करें

MySQL किसी अन्य डेटाबेस से चयन में सम्मिलित करें

किसी अन्य डेटाबेस डैशबोर्ड से पंक्तियों को सम्मिलित करने के लिए SQL क्वेरी यहां दी गई है . केवल अंतर यह है कि डेटाबेस नाम को SELECT क्वेरी में अपने टेबल नाम के साथ जोड़ दें।

mysql> insert into users (user_id,date_joined)
select id,date_joined
from dashboard.auth_user;

उपरोक्त क्वेरी में, हमने dashboard.auth_user . का उपयोग किया है केवल auth_user . के बजाय यह निर्दिष्ट करने के लिए कि यह तालिका किसी भिन्न डेटाबेस में है।

बोनस पढ़ें :MySQL डुप्लीकेट रिकॉर्ड प्राप्त करें

डुप्लिकेट अपडेट पर MySQL INSERT INTO SELECT

यदि आप किसी तालिका में डुप्लिकेट प्राथमिक कुंजी या अनुक्रमणिका मान सम्मिलित करते हैं, तो MySQL एक त्रुटि देगा। INSERT INTO SELECT स्टेटमेंट में, आप ON DUPLICATE KEY UPDATE क्लॉज का उपयोग करके, डुप्लिकेट मानों के मामले में MySQL को विशिष्ट कॉलम अपडेट करने का निर्देश दे सकते हैं। यहां डुप्लीकेट अपडेट पर MySQL INSERT INTO SELECT का एक उदाहरण दिया गया है।

मान लें कि आपके पास निम्न तालिका है x_orders(id, amount)

mysql> create table x_orders(id int auto_increment primary key, amount int);

मान लें कि आपके पास new_orders तालिका है जिसमें आईडी कॉलम के लिए डुप्लिकेट मान हैं।

mysql> select * from new_orders;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-01 |    150 |
|    2 | 2020-07-01 |    235 |
|    1 | 2020-07-01 |    150 |
|    2 | 2020-07-01 |    235 |
+------+------------+--------+

मान लें कि आप new_orders तालिका से x_orders में मान सम्मिलित करने का प्रयास करते हैं। दिखाए गए अनुसार आपको एक त्रुटि मिलेगी।

mysql> insert into x_orders(id,amount)
       select id, amount
       from new_orders;
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

ON DUPLICATE KEY UPDATE क्लॉज का उपयोग करने के लिए यहां SQL है।

mysql> insert into x_orders(id,amount)
       select id, amount
       from new_orders
       on duplicate key update id = RAND() * 100;

mysql> select * from x_orders;
+----+--------+
| id | amount |
+----+--------+
| 27 |    235 |
| 48 |    150 |
| 58 |    235 |
| 62 |    150 |
+----+--------+

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. PHP का उपयोग करके कॉलम में सभी मान कैसे प्राप्त करें?

  2. नोडज में mysql क्वेरी कॉलबैक के लिए पैरामीटर कैसे पास करें

  3. यूआरएल में सही डेटाबेस ऑब्जेक्ट आईडी छुपा रहा है

  4. MySQL में MID () फ़ंक्शन कैसे काम करता है

  5. सम्मिलित करें ... से चुनें ... डुप्लीकेट कुंजी अद्यतन पर