通过r更新postgresql数据库中的表

时间:2013-02-26 21:22:16

标签: r postgresql

如何使用新数据通过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)

2 个答案:

答案 0 :(得分:9)

我用它来计算:

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)
}

答案 1 :(得分:1)

至少RODBC具有特定功能 sqlUpdate

  

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

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