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

MySQL में एक क्वेरी से पहली टेबल के चुनिंदा रिकॉर्ड दूसरी टेबल में INSERT करें

MySQL INSERT INTO SELECT: शर्त के साथ एक टेबल से दूसरी में डेटा कॉपी करना

INSERT INTO ... SELECT सिंटैक्स का उपयोग करके आप एक क्वेरी में एक टेबल से डेटा चुनकर (शर्त के साथ) दूसरी टेबल में डाल सकते हैं।

उदाहरण: DemoTable1 से Id ≠ 2 वाले रिकॉर्ड DemoTable2 में डालें

पहली टेबल:

CREATE TABLE DemoTable1 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(40)
);
INSERT INTO DemoTable1 (Name) VALUES ('Chris'), ('David'), ('Bob');

दूसरी टेबल:

CREATE TABLE DemoTable2 (
    ClientId INT,
    ClientFirstName VARCHAR(20)
);

शर्त के साथ INSERT INTO SELECT

INSERT INTO DemoTable2 (ClientId, ClientFirstName)
SELECT Id, Name FROM DemoTable1 WHERE Id != 2;

परिणाम — DemoTable2:

+----------+-----------------+
| ClientId | ClientFirstName |
+----------+-----------------+
| 1        | Chris           |
| 3        | Bob             |
+----------+-----------------+

महत्वपूर्ण बिंदु

  • कॉलम सूची दोनों तरफ मेल खानी चाहिए: INSERT INTO t2 (a,b) SELECT x,y FROM t1
  • WHERE क्लॉज SELECT का हिस्सा है
  • AUTO_INCREMENT कॉलम को छोड़ सकते हैं (दूसरी टेबल में)
  • डेटा टाइप संगत होने चाहिए

अधिक जटिल उदाहरण

START TRANSACTION;
INSERT INTO DemoTable2 ... SELECT ... WHERE ...;
-- सत्यापन क्वेरी
COMMIT;
  1. - MySQL में एक टेबल के सभी रिकॉर्ड दूसरी टेबल में डालना

    CREATE TABLE AS SELECT से तालिका क्लोन करना CREATE TABLE new_table AS SELECT * FROM old_table से संरचना और डेटा दोनों एक बार में कॉपी हो जाते हैं। स्रोत तालिका (John Doe), (John Smith), (David Miller); नई तालिका बनाकर कॉपी CREATE TABLE DemoTable1519 AS SELECT * FROM DemoTable1518; Query OK, 3 r

  1. - MySQL में DATE_ADD() का उपयोग करके सभी दिनांक रिकॉर्ड में एक वर्ष कैसे जोड़ें?

    MySQL में DATE_ADD() फ़ंक्शन का उपयोग करके दिनांक/दिनांक-समय कॉलम में अंतराल (वर्ष, महीना, दिन, आदि) जोड़ा जा सकता है। सिंटैक्स DATE_ADD(date, INTERVAL value unit) उदाहरण तालिका बनाएं: mysql> CREATE TABLE DemoTable (JoiningDate DATETIME); mysql> INSERT INTO DemoTable VALUES (2015-01-21), (20

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

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