0
我試圖將舊錶中的數據遷移到兩個不同的表中。我很好奇,如果有辦法做下面的事情。將選擇結果插入到多個表中
INSERT INTO table1(v1, v2)
INSERT INTO table2(LAST_INSERT_ID(), v3)
SELECT v1, v2, v3 FROM old_table
我必須爲此編寫一個過程嗎?
我試圖將舊錶中的數據遷移到兩個不同的表中。我很好奇,如果有辦法做下面的事情。將選擇結果插入到多個表中
INSERT INTO table1(v1, v2)
INSERT INTO table2(LAST_INSERT_ID(), v3)
SELECT v1, v2, v3 FROM old_table
我必須爲此編寫一個過程嗎?
不,這是不可能的。您需要發佈兩個單獨的插入語句。
INSERT INTO table1(v1, v2)
SELECT v1, v2, v3, v4 FROM old_table;
INSERT INTO table2(v3, v4)
SELECT v1, v2, v3, v4 FROM old_table;
你可以把它包裝在一個事務中。但是,如果您有更復雜的需求,並且可能會將相同的數據插入到多個不想手動輸入的表中,則可以在過程中編寫循環並執行提供表和列名稱的動態語句。 INFORMATION_SCHEMA桌子將是一個很好的開始。
這是不可能的。我建議你編寫一個程序或爲每個要插入值的表分別運行查詢。 –
[Mysql不支持多插入](http://stackoverflow.com/questions/3860280/sql-insert-into-multiple-tables-in-one-query) –
@MatthiasBurger對於第二次插入,我需要從第一個ID。 – kechapito