我在数据库中有表,例如TableOne。
根据某些规则,我应该将此表中的 N 条记录提交到其他表。
是否可以使用 jdbc 或 ResultSet 或 CachedRowSet?
初步流程,如我所见:
1. TableOne循环2.ResultSet
如果满足某个条件则递增3.如果不满足条件,则该提交到其他数据库表 N 记录 = 4.提交这 N 条记录
counter
counter
所以,问题出在第 4 步。
如何实现?
谢谢你。
计数器的用途尚不清楚,因此我假设您只是使用它来说明您仅提交符合条件的记录的事实。
尝试构建一个插入语句来完成所有工作:
INSERT INTO table2 (a, b, c)
SELECT a, b, c FROM table1
WHERE myConditionIsMet
另一种选择是循环遍历记录集并在每次满足条件时插入一条记录。您应该将循环包装在事务中,以便在循环完成之前不会提交任何内容。我的 JDBC 有点生疏,所以这里是一个伪代码示例:
connection.startTransaction()
for row in records
if row condition
connection.execute('INSERT ROW STATEMENENT')
connection.commitTransaction()
第一种方法更可取,但在某些情况下,可能无法在 SQL 表达式中确定条件。