gpt4 book ai didi

r - 无法使用 dplyr db_write_table() 将数据附加到 sqlite3

转载 作者:行者123 更新时间:2023-12-05 02:18:01 24 4
gpt4 key购买 nike

使用 dplyr 向表中添加数据时,我看到了 https://stackoverflow.com/a/26784801/1653571但文档说 db_insert_table() 已弃用。

?db_insert_into()

...
db_create_table() and db_insert_into() have been deprecated in favour of db_write_table().
...

我尝试使用未弃用的 db_write_table() 来代替,但是无论有没有 append= 选项,它都失败了:

require(dplyr)

my_db <- src_sqlite( "my_db.sqlite3", create = TRUE) # create src
copy_to( my_db, iris, "my_table", temporary = FALSE) # create table
newdf = iris # create new data

db_write_table( con = my_db$con, table = "my_table", values = newdf) # insert into
# Error: Table `my_table` exists in database, and both overwrite and append are FALSE

db_write_table( con = my_db$con, table = "my_table", values = newdf,append=True) # insert into
# Error: Table `my_table` exists in database, and both overwrite and append are FALSE

是否可以使用 db_write_table() 追加数据?

另见 https://github.com/tidyverse/dplyr/issues/3120

最佳答案

不,您不应该使用 db_write_table() 而不是 db_insert_table(),因为它不能跨后端泛化。

并且您不应该使用 tidyverse 版本而不是相关的 DBI:::版本,因为 tidyverse 辅助函数供内部使用,并没有设计得足够健壮以供用户使用。请参阅 https://github.com/tidyverse/dplyr/issues/3120#issuecomment-339034612 的讨论:

Actually, I don't think you should be using these functions at all. Despite that SO post, these are not user facing functions. You should be calling the DBI functions directly.
-- Hadley Wickham, package author.

关于r - 无法使用 dplyr db_write_table() 将数据附加到 sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46413301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com