將資料從一個資料庫遷移到另一個資料庫
P粉509383150
P粉509383150 2023-08-24 09:58:47
0
2
700
<p>我需要將資料從一個資料庫遷移到另一個資料庫,兩者都在同一臺本機系統上。 </p> <p>表和列的名稱不同,我不必遷移舊資料庫中的所有列,所以 </p> <p><code>Select *</code> 對我無效。 </p> <pre class="brush:php;toolbar:false;">INSERT INTO newDatabase.table1(Column1, Column2); SELECT oldDatabase.table1(column1, column2) FROM oldDatabase.table1</pre> <p>但是我得到了一個 <code>#1064 - 語法錯誤</code></p> <p>我的查詢中有什麼錯誤,我該如何修復? </p> <p>提前感謝</p>
P粉509383150
P粉509383150

全部回覆(2)
P粉985686557
INSERT INTO db1.table SELECT * FROM db2.table;

如果您想將資料複製到不同資料庫的相同表中。

P粉663883862

您的查詢應該是這樣的:

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的位置。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板