2014-05-10 46 views
-2

數據複製類似的表是一樣簡單......複製備份表與新列從備份表到生產表

INSERT INTO TBL_A 
SELECT * FROM TBL_A_BK 

但是,如果我做我的備份後添加一個新列TBL_A ,我現在必須指定INSERT語句和SELECT語句中的每一列。我桌子上的柱子越多,這就越令人沮喪,似乎應該有一個更簡單的方法?

回答

1

不,沒有簡單的方法。正確的方法是這樣寫:

INSERT INTO TBL_A (col1, col2, ... colX) 
    SELECT colA, colB, ... colZ FROM TBL_B 

任何其他方法是脆弱的 - 它不是在所有明顯,當一個表有比對方多列或列在不同的順序應該發生什麼。也就是說,您可以輕鬆地使用某些應用程序語言編寫代碼,這些應用程序語言爲元數據中的每個表生成有序列列表,併爲您動態創建SQL。另外,有些語言(我想到一個叫做R:Base的有名的語言,有可能是其他語言)有其他語句(在R:Base中是APPEND),它通過匹配列名來進行INSERT,而其他語句則爲NULL。