我需要将一些表的数据迁移到同一个数据库中的另一个表中;
例如,table1:
PersonID LastName FirstName Address City
1 Foo Bar xxx boh
2 Foo Bar xxx boh
3 Foo Bar xxx boh和table2
PersonID field2 field3 field4 field5
1 boh xxx Foo Bar
2 boh xxx Foo Bar
3 boh xxx Foo Bar我试过使用这个示例代码:
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应该是空的,只是创建了结构。
提前谢谢。
发布于 2022-11-03 11:25:37
假设在Table1中PersonId = 1、2、3、4、5,而在Table2中只有PersonId = 1、2,如果希望将PersonId = 3、4、5从Table1复制到Table2,则可以通过以下查询实现这一点:
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;如果希望从应用程序中完成这一任务,只需按如下方式执行:
s.executeQuery(<query>); // <query> is the query I mentioned above.发布于 2022-11-03 13:06:35
我通过在resultset.CONCUR_UPDATABLE中更改结果集的类型来解决问题,并在while中添加以下内容:
while(table1.next()) {
table2.moveToInsertRow();
tabella2.updateString("PersonID", table1.getString("PersonID"));
table2.insertRow();
}https://stackoverflow.com/questions/74302071
复制相似问题