如何使用新数据通过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)
答案 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应包含列 名称映射到表中的(某些)列