P粉9856865572023-08-25 00:31:09
INSERT INTO db1.table SELECT * FROM db2.table;
如果您想將資料複製到不同資料庫的相同表中。
P粉6638838622023-08-25 00:15:21
您的查詢應該是這樣的:
INSERT INTO newDatabase.table1 (Column1, Column2) SELECT column1, column2 FROM oldDatabase.table1;
更新
由於這個答案引起了比我預期的更多的關注,我應該對這個答案進行擴展。首先,從答案本身可能不明顯,但是列名不需要相同。所以,以下也可以工作(假設列在各自的表中存在):
INSERT INTO newDatabase.table1 (Column1, Column2) SELECT SomeOtherColumn, MoreColumns FROM oldDatabase.table1;
此外,它們甚至不需要是表中的真實欄位。我經常使用的一個轉換資料的範例之一是:
INSERT INTO newDatabase.users (name, city, email, username, added_by) SELECT CONCAT(first_name, ' ', last_name), 'Asgard', CONCAT(first_name,'@gmail.com'), CONCAT(first_name,last_name), 'Damir' FROM oldDatabase.old_users;
所以,現在可能更明顯的規則是,只要SELECT查詢傳回與INSERT查詢所需的列數相同的列,它就可以用於VALUES的位置。