2013-02-26 14 views
7

Jak zaktualizować dane w postgresql db przez R z nowymi danymi?Tabela aktualizacji w bazie danych PostgreSQL za pośrednictwem r

Próbowałem

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

Próbowałem też z dwukropkiem zastąpionych $, ale to nie działa. Wciąż otrzymuję:

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

Czy spojrzał na w dokumentacji, aby sprawdzić, czy w ogóle są obsługiwane symbole zastępcze? Nie każdy interfejs db z R działa. Wiem, że RSQLite ma, ale jestem całkiem pewny, że RODBC nie, i nie jestem pewien o RPostgreSQL. – joran

Odpowiedz

7

I zorientowaliśmy się, używając:

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) 
} 
Powiązane problemy