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

MySQL में UNION ALL का उपयोग करके एक ही क्वेरी में दो टेबल में रिकॉर्ड्स डालना

MySQL में UNION ALL के साथ बहु-टेबल INSERT

MySQL INSERT ... SELECT के साथ UNION ALL का उपयोग करके एक ही क्वेरी में एक स्रोत टेबल से डेटा चुनकर दो (या अधिक) लक्ष्य टेबल में डाल सकता है।

उदाहरण: एक स्रोत से दो टेबल में डालना

mysql> CREATE TABLE DemoTable1 (
    -> StudentName VARCHAR(20),
    -> StudentMarks INT
    -> );
Query OK, 0 rows affected (0.67 sec)

mysql> CREATE TABLE DemoTable2 (
    -> Name VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.61 sec)

mysql> INSERT INTO DemoTable2 VALUES ('Chris');
Query OK, 1 row affected (0.12 sec)

mysql> SELECT * FROM DemoTable2;
+-------+
| Name  |
+-------+
| Chris |
+-------+
1 row in set (0.00 sec)

UNION ALL के साथ INSERT SELECT

mysql> INSERT INTO DemoTable1
    -> SELECT Name, 89 FROM DemoTable2
    -> UNION ALL
    -> SELECT Name, 98 FROM DemoTable2;
Query OK, 2 rows affected (0.15 sec)
Records: 2  Duplicates: 0  Warnings: 0

परिणाम

mysql> SELECT * FROM DemoTable1;
+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       |           89 |
| Chris       |           98 |
+-------------+--------------+
2 rows in set (0.00 sec)

यह कैसे काम करता है

  1. SELECT Name, 89 FROM DemoTable2 → 'Chris', 89 उत्पन्न करता है
  2. SELECT Name, 98 FROM DemoTable2 → 'Chris', 98 उत्पन्न करता है
  3. UNION ALL दोनों परिणाम सेट जोड़ता है (डुप्लिकेट नहीं हटाता)
  4. INSERT INTO DemoTable1 संयुक्त पंक्तियाँ डालता है

UNION बनाम UNION ALL

व्यावहारिक उपयोग के मामले

  • एक स्रोत से एकाधिक टेबल भरना (ETL)
  • एक लेन-देन में विभिन्न डिफ़ॉल्ट के साथ रिकॉर्ड बनाना
  • परीक्षण डेटा उत्पन्न करना
  • विभाजन/शार्डिंग के लिए डेटा वितरित करना

लेन-देन सुरक्षा

START TRANSACTION;
INSERT INTO DemoTable1 SELECT ... UNION ALL SELECT ...;
-- अन्य संचालन
COMMIT;
  1. - MySQL में एक क्वेरी से दो कॉलम कैसे अपडेट करें?

    MySQL में एक ही UPDATE स्टेटमेंट में एकाधिक कॉलम अपडेट करने के लिए, SET क्लॉज़ में कॉलम को कॉमा से अलग करके सूचीबद्ध करें। यह एटॉमिक ऑपरेशन सुनिश्चित करता है और क्वेरी ओवरहेड कम करता है। उदाहरण: FirstName और LastName एक साथ अपडेट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1909 ( Id

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

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

  1. - एकल MySQL क्वेरी में एक कॉलम में एकाधिक मान कैसे डालें?

    सिंटैक्स एक कॉलम में एकाधिक मान डालने के लिए, निम्नलिखित सिंटैक्स का उपयोग करें: INSERT INTO yourTableName VALUES (yourValue1), (yourValue2), ... (yourValueN); उदाहरण सबसे पहले एक टेबल बनाते हैं: ); अब INSERT कमांड का उपयोग करके रिकॉर्ड डालें: INSERT INTO DemoTable2022 VALUES (Computer Science)

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
पहलूUNIONUNION ALL
डुप्लिकेटहटाता हैरखता है (तेज़)
प्रदर्शनधीमा (सॉर्ट/अद्वितीय)तेज़
उपयोगजब अद्वितीय परिणाम चाहिएजब सभी पंक्तियाँ चाहिए