gpt4 book ai didi

r - 使用 RPostgreSQL 将数据写入表而不改变结构

转载 作者:行者123 更新时间:2023-11-29 13:19:47 26 4
gpt4 key购买 nike

我在使用 RPostgreSQL 包时遇到的一件事是 dbWriteTable(... overwrite=TRUE) 似乎破坏了现有的表结构(数据类型和约束),而 dbRemoveTable() 相当于 DROP 表。

所以我用过:

ltvTable <- "the_table_to_use"
dfLTV <- dataframe(x,y,z)
sql_truncate <- paste("TRUNCATE ", ltvTable) ##unconditional DELETE FROM…
res <- dbSendQuery(conn=con, statement=sql_truncate)
dbWriteTable(conn=con, name=ltvTable, value=dfLTV, row.names=FALSE, append=TRUE)

是否需要 TRUNCATE 步骤,或者是否存在仅覆盖内容而不覆盖结构的 dbWriteTable 方法?

我遇到的行为与 Manura Omal 提供的答案不同至 How we can write data to a postgres DB table using R? ,因为 overwrite=TRUE 似乎不会先截断。

我正在使用:RPostgreSQL 0.4-1; PostgreSQL 9.4

最良好的祝愿 - JS

最佳答案

据我所知,overwrite=T 做了 3 件事:

  • 删除表格
  • 创建表
  • 用新数据填充表格

所以如果你想保留结构,那么你需要Truncate这一步。不同的行为可能是由阻止 DROP 表步骤的外键的存在或不存在引起的。

关于r - 使用 RPostgreSQL 将数据写入表而不改变结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44068154/

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