我將一個表中的所有記錄複製到另一個表中,該表中將有一個附加列來跟蹤複製過程。這個額外的列將來自其他表格。混淆的插入語句
我無法從這些現有的表中插入數據到新表中,並且需要您輸入那些人的信息。
(我不能一個新列添加到現有的表。我必須從它複製數據。)
我將一個表中的所有記錄複製到另一個表中,該表中將有一個附加列來跟蹤複製過程。這個額外的列將來自其他表格。混淆的插入語句
我無法從這些現有的表中插入數據到新表中,並且需要您輸入那些人的信息。
(我不能一個新列添加到現有的表。我必須從它複製數據。)
應該很簡單。如果在第二個舊錶中沒有任何匹配的行,我使用LEFT OUTER JOIN,這樣您就不會忽略第一個舊錶中的任何行。如果新列不可爲空,您可以調整選擇以提供默認值。新的表格應該事先創建。
INSERT INTO newtable (colA,colB,...,newCol)
(SELECT a.colA, a.colB,..., b.newCol
FROM oldtable1 a
LEFT OUTER JOIN oldtable2 b on a.colA = b.colA)
我不確定您是否正在使用SQL Server或MySQL或其他類似的東西,但類似的東西應該可以工作。
INSERT INTO table_name (col1, col2, col_for_tracking_copy)
SELECT col1, col2, 'some value' AS col_for_tracking_copy
FROM table_name2
你說額外的列將來自'其他表'。你可以再詳細一點嗎?如果您可以加入到其他表中,只需將其添加到上面的語句中,並刪除「某些值」。
謝謝......但我的概率是我在舊錶中有230列。那麼,我必須如上所示鍵入它們? a.cola,a,colb,... a.col230 ????有沒有其他方式做到這一點? – user1008844
您可以嘗試省略列說明符並執行一個'select a。*,b.newCol ...'插入的列數是正確的,並且按照相同的順序,它可能工作。不幸的是,我現在無法嘗試。 – tvanfosson
非常感謝....我會試一試肯定.... – user1008844