2011-04-03 63 views
0

继承人的情况。我在这里有2个表格:需要SQL将条目从一个表移动到另一个表

ID | COMPANY_NAME | DESC |联系方式

ID | COMPANY_ID | X_COORDINATE | Y_COORDINATE

第一个表格包含公司列表,以及上述公司的第二个联系人坐标。

问题是我想将此表中的数据与另一组已经有数据的表中的数据合并。其他表格具有相似的结构,但已经用数据进行了计算。这些ID是自动增量的。

因此,如果我们可以说公司在表1中标记为1-1000,公司在表2中标记为1-500的公司,我们需要将其合并,使得表2中的ID号1在迁移到另一个表时变为ID 1001。并且,我们还希望迁移坐标表中的条目,以便它们映射表的新ID。这可以在SQL中完成,还是需要在这里使用脚本来完成这种工作。

回答

2

我不知道我明白有多少桌子,谁是桌子1,2,但问题很明显。我想最简单的方法是:你开始这个过程

备份所有数据库之前添加一列到目标表将包含原始ID。

将要合并的所有记录(源)插入到目标表中,将原始ID放入您添加的列中。

现在你可以更新地理X,使用旧的ID毕竟

完成和良好的Y数据,你可以删除原来的ID列。

编辑:在回复你的评论时,我会在这里添加代码,因为它更具可读性。

改编自SQL联机丛书:从另一个表中插入行

INSERT INTO MyNewTable (TheOriginalID, Desc) 
     SELECT ID, Desc 
     FROM OldTable; 

然后,你可以做一个更新基于值从旧表,像这样的新表:

UPDATE MyNewTable SET X = oldTable.X , Y = oldTable.Y where 
FROM MYNewTable inner JOIN OldTable ON MYNewTable.TheOriginalID = OldTable.ID 
+0

我明白但我想知道什么SQL我可以用这个 – Ali 2011-04-03 09:37:50

+0

更新的答案包括一些示例代码,检查出来 – Menahem 2011-04-03 10:05:56

相关问题