获取所有结果后,RMySQL结果集不“完整”

时间:2013-03-13 16:48:50

标签: r rmysql

在处理MySQL服务器中很多行的脚本中,我使用dbSendQueryfetch来限制提取和处理结果。

当我的fetch命令确切地检索结果集中可用(或左)的行数时,保留0行,dbHasCompleted返回FALSE,而我希望它返回TRUE

query <- "select record_id, name 
          from big_table left join another_table using (record_id) 
          limit 500"

resultset <- dbSendQuery(con, query)   # con: DB connection

while(!dbHasCompleted(resultset)) {
  input <- fetch(resultset, n = 500)
  print(paste("Rows fetched:", nrow(input)))
  # process input ...
}

我希望这个循环运行一次,但是在处理之后会有额外的运行,再次调用print

Rows fetched: 500
...
Rows fetched: 0

显然,当获取确切的可用行数时,dbHasCompleted(resultset)为false(对于n = 1000,2000,3000,观察到相同的行为)。当在这个脚本中n = 501时,没有第二个循环。

这是预期的吗?我做错了吗?

0 个答案:

没有答案