sql - 断开 dplyr 中的 src_tbls 连接

标签 sql r dplyr

有没有办法强制断开dplyr中的src_tbls对象,类似于RPostgreSQL::dbDisconnect

参见示例:

> src_temp <- src_postgres(dbname = "temp", host = "127.0.0.1", port = 5432, user = "x", password = "y")
Error in postgresqlNewConnection(drv, ...) : 
  RS-DBI driver: (cannot allocate a new connection -- maximum of 16 connections already opened)

顺便说一句,它会在几秒钟后很快自动断开连接:

Auto-disconnecting postgres connection (3734, 26)

之后您可以再次运行src_postgres命令。

最佳答案

你可以这样做:

RPostgreSQL::dbDisconnect(src_temp$con)

强制断开连接。

这就是 dplyr 中此函数调用垃圾收集的内容(通过 dbi-s3.r 源文件):

# Creates an environment that disconnects the database when it's
# garbage collected
db_disconnector <- function(con, name, quiet = FALSE) {
  reg.finalizer(environment(), function(...) {
    if (!quiet) {
      message("Auto-disconnecting ", name, " connection ",
        "(", paste(con@Id, collapse = ", "), ")")
    }
    dbDisconnect(con)
  })
  environment()
}

关于sql - 断开 dplyr 中的 src_tbls 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331201/

相关文章:

sql - 多表连接查询,Oracle SQL 中带有计数

RMarkdown : How to pass arguments to bash chunk defined as variables in R?

从数据帧中删除 'FALSE' 和 'NAs'

sql - 在 Oracle SQL 中解析具有未知 namespace 的 XML

sql - 合并表并删除重复项 : Use Join, 联合或两者

mysql - 如何为带有 ORDER BY 子句的 SQL 查询选择正确的索引 (MySQL)

r - 改变 dplyr 以选择变量的第一个值

R:readr:如何为一个(有问题的)列(而不是全部)指定数据类型

r - 从 R 中的模式列表中仅提取第一次出现

r - 将具有两个不同后缀的数据帧列堆叠成两列,最好使用 tidyverse