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

MySQL में अलग कॉलम वाली टेबल में रिकॉर्ड कैसे कॉपी करें?

MySQL में एक टेबल से दूसरी टेबल में डेटा कॉपी करने के लिए, जब कॉलम नाम या संरचना अलग हो, तो INSERT INTO ... SELECT स्टेटमेंट का उपयोग करें। यह कॉलम मैपिंग को स्पष्ट रूप से परिभाषित करने की अनुमति देता है।

उदाहरण: अलग कॉलम नामों के साथ डेटा कॉपी

स्रोत टेबल बनाएं (ऑटो-इन्क्रीमेंट प्राइमरी की के साथ):

mysql> CREATE TABLE DemoTable1900 (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(20),
    ClientAge INT DEFAULT 29
) AUTO_INCREMENT = 1000;

डेटा इन्सर्ट करें:

mysql> INSERT INTO DemoTable1900 (ClientName, ClientAge) VALUES
('Chris', 45),
('David', 29),
('Mike', 37),
('Sam', NULL); -- डिफ़ॉल्ट 29 उपयोग होगा

लक्ष्य टेबल बनाएं (अलग कॉलम नामों के साथ):

mysql> CREATE TABLE DemoTable1901 (
    EmployeeId INT,
    EmployeeName VARCHAR(20),
    EmployeeAge INT
);

कॉलम मैपिंग के साथ डेटा कॉपी करें:

mysql> INSERT INTO DemoTable1901 (EmployeeId, EmployeeName, EmployeeAge)
SELECT ClientId, ClientName, ClientAge FROM DemoTable1900;

परिणाम:

+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
| 1000       | Chris        | 45          |
| 1001       | David        | 29          |
| 1002       | Mike         | 37          |
| 1003       | Sam          | 29          |
+------------+--------------+-------------+

मुख्य बिंदु

  • कॉलम क्रम: INSERT INTO और SELECT में कॉलम का क्रम मेल खाना चाहिए।
  • स्पष्ट कॉलम सूची: हमेशा कॉलम नाम निर्दिष्ट करें ताकि भविष्य में स्कीमा परिवर्तन से क्वेरी न टूटे।
  • डेटा प्रकार संगतता: स्रोत और लक्ष्य कॉलम के डेटा प्रकार संगत होने चाहिए।
  • AUTO_INCREMENT: लक्ष्य टेबल में ऑटो-इन्क्रीमेंट नहीं है, इसलिए स्रोत ID कॉपी हो जाते हैं।
  • डिफ़ॉल्ट मान: स्रोत में NULL होने पर डिफ़ॉल्ट मान (29) कॉपी होता है।

उन्नत उपयोग

आप SELECT में एक्सप्रेशन, फंक्शन, या स्थिर मान भी उपयोग कर सकते हैं:

INSERT INTO TargetTable (id, name, created_at, status)
SELECT id, UPPER(name), NOW(), 'active' FROM SourceTable;

यह तरीका डेटा माइग्रेशन, आर्काइविंग, और रिपोर्टिंग टेबल बनाने के लिए आदर्श है।

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

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

  1. - MySQL में SUBSTRING_INDEX का उपयोग करके हाइफ़न से अलग स्ट्रिंग को कई कॉलम्स में विभाजित करें

    MySQL में SUBSTRING_INDEX का उपयोग करके विभाजक द्वारा स्ट्रिंग पार्सिंग MySQL का SUBSTRING_INDEX() फ़ंक्शन एक स्ट्रिंग को विभाजक द्वारा विभाजित करने और विशिष्ट भाग निकालने के लिए अत्यंत उपयोगी है। यह CSV-शैली डेटा या संयुक्त फ़ील्ड्स को पार्स करने के लिए आदर्श है। टेबल बनाना ); Query OK, 0 rows af

  1. - MySQL में UPDATE JOIN से दूसरी टेबल के डेटा से पहली टेबल अपडेट करें

    UPDATE ... JOIN सिंटैक्स UPDATE targetTable tbl1 JOIN sourceTable tbl2 ON tbl1.commonCol = tbl2.commonCol SET tbl1.targetCol = tbl2.sourceCol; उदाहरण स्रोत टेबल (demo54): पूरा डेटा insert into demo54 values(John,Smith), (John,Smith), (David,Smith); लक्ष्य टेबल (demo55): lastName NULL insert int