繁体   English   中英

DBI::dbWriteTable 没有将 SQLite 表写入磁盘

[英]DBI::dbWriteTable isn't writing a SQLite table to disk

我刚刚开始使用DBI访问(本地)SQLite 数据库,我似乎在读取和写入磁盘时遇到了基本问题。 这是一个代表:

library(DBI)

con = dbConnect(RSQLite::SQLite(), path = 'test.db')
dbWriteTable(conn = con, name = "Tbl_test", value = mtcars)
dbListTables(conn = con)
#> [1] "Tbl_test"
dbDisconnect(con)

con = dbConnect(RSQLite::SQLite(), path = 'test.db')
dbListTables(conn = con)
#> character(0)
dbDisconnect(con)

sessionInfo()
#> R version 4.0.0 (2020-04-24)
#> Platform: x86_64-apple-darwin17.0 (64-bit)
#> Running under: macOS Catalina 10.15.5
#> 
#> Matrix products: default
#> BLAS:   /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib
#> LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
#> 
#> locale:
#> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] DBI_1.1.0
#> 
#> loaded via a namespace (and not attached):
#>  [1] Rcpp_1.0.4.6    digest_0.6.25   magrittr_1.5    evaluate_0.14  
#>  [5] RSQLite_2.2.0   highr_0.8       rlang_0.4.6     stringi_1.4.6  
#>  [9] blob_1.2.1      vctrs_0.3.1     rmarkdown_2.1   tools_4.0.0    
#> [13] stringr_1.4.0   bit64_0.9-7     bit_1.1-15.2    xfun_0.13      
#> [17] yaml_2.2.1      compiler_4.0.0  pkgconfig_2.0.3 memoise_1.1.0  
#> [21] htmltools_0.4.0 knitr_1.28

reprex package (v0.3.0) 于 2020 年 6 月 23 日创建

第一位似乎使用来自mtcars的数据正确添加了一个新表。 但是工作目录(或其他任何地方,基于 Finder 搜索)中没有任何内容写入磁盘。 第二位不会抛出找不到数据库文件的错误; 它只是悄悄地找不到任何桌子。

连接数据库时需要指定dbname参数。
如果不这样做,DB 将在 memory 中创建,并在您断开连接时消失。
path不属于SQLlite arguments并且不被考虑:数据库是在您的工作目录中创建的。

library(DBI)

con = dbConnect(RSQLite::SQLite(),dbname = 'test.db', path = "#?*_~")
dbWriteTable(conn = con, name = "Tbl_test", value = mtcars)
dbListTables(conn = con)
#> [1] "Tbl_test"
dbDisconnect(con)

dir(".")
#>[1] "test.db"  

con = dbConnect(RSQLite::SQLite(), dbname = 'test.db')
dbListTables(conn = con)
#> [1] "Tbl_test"
dbDisconnect(con)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM