0

我正在将所有记录从一个表复制到另一个表,该表将有一个额外的列来跟踪复制过程。此附加列将来自其他表。

我无法从这些现有表中将数据插入到新表中,并且需要您的输入。

(我不能在现有表中添加一个新列。我必须从中复制数据。)

4

2 回答 2

0

我不确定您使用的是 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

您说附加列将来自“其他表”。你可以再详细一点吗?如果您可以加入这个其他表,只需将其添加到上述语句并删除“一些值”。

于 2011-10-22T19:20:16.683 回答
0

应该很简单。我正在使用 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) 
于 2011-10-22T19:04:53.273 回答