इसके लिए, आपको INSERT SELECT स्टेटमेंट का उपयोग करना होगा। सिंटैक्स इस प्रकार है:
INSERT INTO yourDatabaseName1.yourTableName1(yourColumnName1,yourColumnName2,....N) SELECT yourColumnName1,yourColumnName2,....N FROM yourdatabaseName2.yourTableName2;
यहाँ, मैं निम्नलिखित दो डेटाबेस का उपयोग कर रहा हूँ:
- sample
- test
आइए "test" डेटाबेस में पहली टेबल बनाते हैं:
<send>
mysql> use test; Database changed mysql> create table send -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20) -> ); Query OK, 0 rows affected (1.19 sec)
Insert कमांड का उपयोग करके पहली टेबल में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है:
mysql> insert into send(Name) values('John'); Query OK, 1 row affected (0.20 sec) mysql> insert into send(Name) values('Carol'); Query OK, 1 row affected (0.40 sec)Select स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select *from send;
निम्नलिखित आउटपुट है:
+----+-------+ | Id | Name | +----+-------+ | 1 | John | | 2 | Carol | +----+-------+ 2 rows in set (0.00 sec)
अब, "sample" डेटाबेस में दूसरी टेबल बनाएं:
<receive>
mysql> use sample; Database changed mysql> create table receive -> ( -> UserId int, -> UserName varchar(20) -> ); Query OK, 0 rows affected (0.59 sec)
जैसा कि आप ऊपर देख सकते हैं, दूसरी टेबल "receive" में हमारे पास कोई रिकॉर्ड नहीं है।
आइए अब अलग-अलग कॉलम वाली 2 टेबल के बीच डेटा को अलग-अलग डेटाबेस में ले जाएं। क्वेरी इस प्रकार है:
mysql> insert into sample.receive(UserId,UserName) -> select Id,Name from test.send; Query OK, 2 rows affected (0.21 sec) Records: 2 Duplicates: 0 Warnings: 0
टेबल sample.receive से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है:
mysql> select *from receive;
निम्नलिखित आउटपुट है जो दर्शाता है कि हमने सफलतापूर्वक एक टेबल से दूसरी टेबल में अलग-अलग डेटाबेस में डेटा ले जाया है:
+--------+----------+ | UserId | UserName | +--------+----------+ | 1 | John | | 2 | Carol | +--------+----------+ 2 rows in set (0.00 sec)