2013-02-26 8 views
7

Come aggiornare i dati in un db di postgresql con R con nuovi dati?tabella di aggiornamento nel database postgresql tramite r

Ho provato

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

Ho provato anche con i due punti sostituiti con $, ma che non ha funzionato neanche. Continuo a ricevere:

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

Hai guardato la documentazione per vedere se i segnaposto sono supportati? Non tutte le interfacce db di R lo fanno. So che RSQLite fa, ma sono abbastanza sicuro che RODBC non lo faccia, e non sono sicuro di RPostgreSQL. – joran

risposta

7

ho capito utilizzando:

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