当前位置:  开发笔记 > 数据库 > 正文

在表中为另一个表中的每个id插入行

如何解决《在表中为另一个表中的每个id插入行》经验,为你挑选了2个好方法。

我试着在这里搜索类似的解决方案,但没有看到一个,所以我想知道什么是实现以下的最佳方法.

我有一个1700万行的表都有一个唯一的ID.我们最近创建了一个新表,它将与前一个表一起使用,其中新表的外键是旧表的唯一ID.

对于前者
表1 - id,field1,field2,field3 ...表2 - table1.id,field1 ...

问题是因为我们正在将它迁移到实时环境中,我们需要在表1中为表1中的每一行填充包含表1的id的行.ex,表1 - 1,test,null表2现在需要为table1中的每一行提供:1,null,...等等.主要问题是表1中的id不是全部顺序的,因此我们必须从表1中读取,然后根据找到的id插入到表2中.

有没有更简单的方法去做?在此先感谢乔

另外要澄清的是,表2将是新数据,它将包含在表1中的唯一内容是保持外键关系的id

这也是sql server 2000



1> kristof..:

如果我理解正确,你需要table2中的每条记录中的一条记录.另外我认为除了对table1的引用之外,table2最初应该包含空行.

所以假设

table1 (ID, field1, field2, ...)
table2 (ID, table1_ID, fieldA, fieldB,...)
-- where table1_ID is a reference to ID of table1

创建table2后,您只需运行此insert语句即可

insert into table2(table1_ID) 
select ID from table1



2> Ryan Guill..:

我不确定我是否正在关注你,但这样的事情对你有用吗?

INSERT INTO table2 ( SELECT field1, field2, field3... FROM table1 )

如果我正确理解你想在table2中为table1中的每条记录创建一条记录.这样就可以了.只需按正确顺序匹配select中的字段,并为table1中没有table1中的任何字段指定常量.

HTH.让我知道,如果我不理解,我会再次尝试帮助.


为了使它在SQL Server中工作,我不得不写:INSERT INTO table2(field1,field2,field3)SELECT field1,field2,field3 FROM table1
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有