首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据从表插入到另一个具有结果集的表中。

将数据从表插入到另一个具有结果集的表中。
EN

Stack Overflow用户
提问于 2022-11-03 11:05:04
回答 2查看 36关注 0票数 0

我需要将一些表的数据迁移到同一个数据库中的另一个表中;

例如,table1:

代码语言:javascript
复制
PersonID    LastName    FirstName   Address  City
1            Foo          Bar        xxx     boh
2            Foo          Bar        xxx     boh
3            Foo          Bar        xxx     boh

和table2

代码语言:javascript
复制
 PersonID   field2  field3  field4   field5
 1          boh     xxx     Foo      Bar
 2          boh     xxx     Foo      Bar
 3          boh     xxx     Foo      Bar

我试过使用这个示例代码:

代码语言:javascript
复制
ResultSet table1 = s.executeQuery("Select * from table1");
ResultSet table2 = s.executeQuery("Select * from table2");
 
while(table1.next()) {
     table2.insertRow();
}

但就在这个指令下,我得到了“结果集是关闭的”。错误。我可以在table2中插入相同数量的table1吗?然后,通过从table1读取信息并使用结果集updateRow方法将它们添加到table2中,来讨论如何添加信息。

编辑:开头的Table2应该是空的,只是创建了结构。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2022-11-03 11:25:37

假设在Table1中PersonId = 1、2、3、4、5,而在Table2中只有PersonId = 1、2,如果希望将PersonId = 3、4、5从Table1复制到Table2,则可以通过以下查询实现这一点:

代码语言:javascript
复制
INSERT INTO Table2
SELECT t1.PersonId, t1.LastName, t1.FirstName, t1.Address, t1.City
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.PersonId = t2.PersonId
WHERE t2.PersonId IS NULL;

如果希望从应用程序中完成这一任务,只需按如下方式执行:

代码语言:javascript
复制
s.executeQuery(<query>); // <query> is the query I mentioned above.
票数 0
EN

Stack Overflow用户

发布于 2022-11-03 13:06:35

我通过在resultset.CONCUR_UPDATABLE中更改结果集的类型来解决问题,并在while中添加以下内容:

代码语言:javascript
复制
while(table1.next()) {
    table2.moveToInsertRow();
    tabella2.updateString("PersonID", table1.getString("PersonID"));
    table2.insertRow();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74302071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档