5

我想将完整的数据框导出到已经在数据库(postgresql)中创建并包含类似数据的表中。

我发现了一些关于 dbwrite 表的解释问题(....overwrite = TRUE),我不想覆盖表中已经存在的数据。我只想用来自 r 控制台的数据框更新我的表。

有人可以让我知道我该怎么做..

像这样的东西

dbInsertTable(con, df, tablename = "MyTable")
4

1 回答 1

12

你需要dbWriteTable

假设您不在数据框中使用行名,您会这样做

dbWriteTable(con, "MyTable", df, row.names=FALSE, append=TRUE)

如果您希望 df 中的行名成为数据库表中的一列,那么您可以将该选项设置为TRUE. 如果您的表位于公共架构以外的架构中,那么您将c('myschema', 'MyTable')使用直观的“myschema.MyTable”来代替。此外,数据框的列需要与数据库表中的列的顺序相同。它基于订单而不是名称匹配。

顺便说一句,你可能不应该在你的 postgres 表或列名中使用大写字母,因为你需要引用它们。如果你真的使用大写字母,那么你需要类似的东西dbWriteTable(con, '"MyTable"', df, row.names=FALSE, append=TRUE)

于 2015-11-10T17:53:24.627 回答