获取DBI :: dbWriteTable刚刚编写的所有行

时间:2017-11-30 08:30:10

标签: r database postgresql odbc

我想使用R的dbWriteTable()包的DBI将数据写入数据库。通常,各个表已经存在,所以我使用参数append = TRUE。如何通过dbWriteTable()获取哪些行添加到表中?大多数表都包含UNIQUE个值的某些列,因此SELECT将起作用(请参阅下面的简单示例)。但是,对于所有这些都不是这样,或者仅UNIQUE只有几列使SELECT更复杂。另外,我想把写作和查询放到一个函数中,所以我希望所有情况都采用一致的方法。

我主要需要这个来获取数据库添加的PRIMARY KEY,并允许用户快速查看添加的内容。如果重要,我的数据库是PostgreSQL,我想使用odbc包进行连接。

我有类似的想法,但是,我正在寻找更通用的解决方案:

library(DBI)

con <- dbConnect(odbc::odbc(), dsn = "database")
dbWriteTable(con, 
             name = "site", value = data.frame(name = c("abcd", "efgh"), 
             append = TRUE))
dbGetQuery(conn,
           paste("SELECT * FROM site WHERE name in ('abcd', 'efgh');"))

0 个答案:

没有答案