将数据从备份表复制到生产表就像......一样简单。
INSERT INTO TBL_A
SELECT * FROM TBL_A_BK
但是,如果我在备份后向TBL_A添加新列,我现在必须指定INSERT语句和SELECT语句中的每一列。我表中的列越多,这就越令人沮丧,似乎应该有更简单的方法吗?
答案 0 :(得分:1)
不,没有更简单的方法。正确的方法是写:
INSERT INTO TBL_A (col1, col2, ... colX)
SELECT colA, colB, ... colZ FROM TBL_B
任何其他方法都很脆弱 - 当一个表的列数多于另一个表,或者列的顺序不同时,应该发生什么并不明显。
也就是说,您可以轻松地使用某种应用程序语言编写代码,该语言为元数据中的每个表构建有序列列表,并为您即时创建SQL。
此外,有些语言(我想到一个名为R:Base的晦涩难懂的语言,有可能是其他语言)还有其他语句(在R:Base it' APPEND中)通过匹配列名来INSERT ,留下其他人。