INSERT INTO ... SELECT से डेटा कॉपी और डिफ़ॉल्ट मान
MySQL में एक टेबल से दूसरी टेबल में डेटा कॉपी करते समय किसी कॉलम के लिए निश्चित मान सेट करने के लिए INSERT INTO ... SELECT सिंटैक्स का उपयोग करें।
स्रोत टेबल बनाएं
mysql> CREATE TABLE insertOneToAnotherTable (
-> Value INT
-> );
mysql> INSERT INTO insertOneToAnotherTable VALUES(100), (200), (300), (400), (500), (600);
स्रोत डेटा:
+-------+ | Value | +-------+ | 100 | | 200 | | 300 | | 400 | | 500 | | 600 | +-------+
लक्ष्य टेबल बनाएं
mysql> CREATE TABLE receiveDataFromTable (
-> Value1 INT,
-> Value2 INT
-> );
डेटा कॉपी करें और Value2 को 1000 सेट करें
mysql> INSERT INTO receiveDataFromTable(Value1, Value2)
-> SELECT Value, 1000 FROM insertOneToAnotherTable;
आउटपुट: Query OK, 6 rows affected (0.14 sec) Records: 6 Duplicates: 0 Warnings: 0
लक्ष्य टेबल में परिणाम:
mysql> SELECT * FROM receiveDataFromTable;
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 100 | 1000 | | 200 | 1000 | | 300 | 1000 | | 400 | 1000 | | 500 | 1000 | | 600 | 1000 | +--------+--------+
मुख्य बिंदु:
SELECT Value, 1000- पहला कॉलम स्रोत टेबल से, दूसरा निश्चित मान 1000- कॉलम क्रम और संख्या
INSERT INTOऔरSELECTमें मेल खाने चाहिए - WHERE क्लॉज जोड़कर चुनिंदा पंक्तियाँ कॉपी कर सकते हैं
- एक्सप्रेशन भी उपयोग कर सकते हैं:
SELECT Value, Value * 2
सावधानी: यदि लक्ष्य टेबल में PRIMARY KEY या UNIQUE कंस्ट्रेंट हो, तो डुप्लीकेट से बचें।