背景:
我使用dbplyr
和dplyr
从数据库中提取数据,然后我使用该命令dbSendQuery()
来构建我的表。
问题:
建立表后,如果我运行另一个命令,我会收到以下警告:
Warning messages:
1. In new_result(connection@ptr, statement): Cancelling previous query
2. In connection_release(conn@ptr) :? There is a result object still in use.
The connection will be automatically released when it is closed.
题:
因为我没有要获取的结果(我正在发送构建表的命令),所以我不确定如何避免此警告。目前,我在构建表后断开连接,错误消失了。我能做些什么来避免这个警告?
目前一切正常,我只有这个警告。我只是想避免它,因为我认为我应该在建立我的桌子后清理一些东西。
代码示例
# establish connection
con = DBI::dbConnect(<connection stuff here>)
# connect to table and database
transactions = tbl(con,in_schema(“DATABASE_NAME”,”TABLE_NAME”))
# build query string
query_string = “SELECT * FROM some_table”
# drop current version of table …
我想将存储为两列(开始、结束)+值的日期范围转换为仅包含日期和值的两个新列。
\n\n我的数据:
\n\n id end start value\n1 4421 2014-01-01 2014-01-03 10\n2 4421 2014-01-04 2014-01-04 500\n3 4421 2014-01-05 2014-01-07 20\n4 5560 2014-01-02 2014-01-03 100\n5 5560 2014-01-04 2014-01-04 600\n
Run Code Online (Sandbox Code Playgroud)\n\n我想要的是:
\n\n Date id value\n0 2014-01-01 4421 10\n1 2014-01-02 4421 10\n2 2014-01-03 4421 10\n3 2014-01-04 4421 500\n4 2014-01-05 4421 20\n5 2014-01-06 4421 20\n6 2014-01-07 4421 20\n7 2014-01-01 5560 NA\n8 2014-01-02 5560 100\n9 2014-01-03 5560 100\n10 2014-01-04 5560 600\n
Run Code Online (Sandbox Code Playgroud)\n\nI\xe2\x80\x99m 使用 dplyr,所以我可以与 mutate 和管道等一起使用的东西会很有用。
\n\n样本数据:
\n\nid <- c(4421, 4421, …
Run Code Online (Sandbox Code Playgroud) 我在 R 中编写了一个函数,它从数据库中提取数据并构建一个新表。
我的新表格标有摘录日期 ( build_date_0
)。
当我调试我的函数时,当我查看我的日期字符串时,我收到以下警告:
Browse[2]> build_date_0
[1] "2019-05-01"
Warning message:
In get(object, envir = currentEnv, inherits = TRUE) :
restarting interrupted promise evaluation
Run Code Online (Sandbox Code Playgroud)
问题:
这是我的代码:
build_account_db = function(conn = connection_object
,various_inputs = 24){
browser()
# create connection objects
tabs_1 = dplyr::tbl(conn,in_schema("DB_1","VIEW_W") # some table
# create date string
build_date_0 = lubridate::today() %>% as.character()
build_date = str_replace_all(build_date_0,"-+","_")
db_name_1 = paste0('DATABASE.tab_1_',build_date)
db_name_2 = paste0('DATABASE.tab_2_',build_date)
# build query
query_text_1 = tabs_1 %>% select(COL_1) # some query …
Run Code Online (Sandbox Code Playgroud)