MySQL遍历每一行(大表)

Jos*_*osh 6 java mysql

我有一张桌子IDname.我想通过这个表的每一行.这ID是一个primary keyauto_increment.

我不能使用(?)单个查询来获取所有行,因为表格很大.我正在为每一个结果做点什么.我希望有可能停止这项任务,并在以后继续.

我以为我可以这样做:

for (int i = 0; i < 90238529; i++) {
  System.out.println("Current ID :" + i);
  query = "SELECT name FROM table_name WHERE id = " + i;
  ...
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为auto_increment跳过了一些数字.

如上所述,我需要一个选项来停止这项任务,让我能够在我离开的地方重新开始.与上面的示例代码一样,我知道ID当前条目,如果我想再次启动它,我只是设置int i = X.

Era*_*ran 6

使用单个查询来获取所有记录:

query = "SELECT name FROM table_name WHERE id > ? ORDER BY id";
Run Code Online (Sandbox Code Playgroud)

然后迭代ResultSet并读取您希望的记录数(您不必读取ResultSet返回的所有行).

下次运行查询时,传递上一次执行中获得的最后一个ID.