我正在编写一个必须自己运行的脚本(一个cron作业),并且需要连接到MySQL数据库并执行一些操作。我正在使用RMySQL包来执行此操作。
由于必须自动运行,我希望脚本通过检查连接中是否存在任何表来递归测试连接是否成功。到目前为止,没有运气,我尝试了以下内容:
library(RMySQL)
con <- dbConnect(MySQL(), dbname="test")
FCSQL <- function(connection) {
if (length(dbListTables(connection)) == 0 ) {
con <- dbConnect(MySQL(), dbname="test")
connection <- FCSQL(connection)
FCSQL(connection)
} else {
return("ON")
}
}
FCSQL(con)
#the error for the previous example:
#Error in .local(conn, statement, ...) :
#connection with pending rows, close resultSet before continuing
使用相同的错误稍作修改:
FCSQL <- function(connection) {
if (length(dbListTables(connection)) == 0 ) {
con <- dbConnect(MySQL(), dbname="test")
FCSQL(con)
} else {
return("ON")
}
}
FCSQL(con)
#Error in .local(conn, statement, ...) :
#connection with pending rows, close resultSet before continuing