7

如何通过 R 使用新数据更新 postgresql 数据库中的数据?

我试过了

dbGetQuery(con,"UPDATE table SET column1=:1,column2=:2, column3=:3 
              where id=:4", data=Rdata[,c("column1", "column3", "column3","id")])

我也尝试将冒号替换为 $ 但这也不起作用。我不断得到:

Error in postgresqlExecStatement(conn, statement, ...) : 
unused argument(s)
4

2 回答 2

12

我想通了使用:

update <- function(i) {
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname="db_name", host="localhost", port="5432", user="chris", password="password")
txt <- paste("UPDATE data SET column_one=",data$column_one[i],",column_two=",data$column_two[i]," where id=",data$id[i])
dbGetQuery(con, txt)
dbDisconnect(con)
}


registerDoMC()

foreach(i = 1:length(data$column_one), .inorder=FALSE,.packages="RPostgreSQL")%dopar%{
update(i)
}
于 2013-03-04T03:03:33.063 回答
1

至少 RODBC 有一个特定的函数sqlUpdate

sqlUpdate 更新已存在行的表。数据框 dat 应包含名称映射到表中(某些)列的列

http://cran.r-project.org/web/packages/RODBC/RODBC.pdf

于 2013-03-02T21:51:06.157 回答