RODBC-为什么我的更新查询不起作用?

时间:2019-03-08 19:47:57

标签: sql r sql-update rodbc

我正在读取.csv文件,并比较两个字段,一个字段在名为“ Col”的表中,另一个在.csv文件中的称为“ newdata”的表中。如果它们匹配,我用“ newdata”中的avg_price值覆盖“ COL”表中的item_price。我没有收到任何错误,但是COL没有任何改变。

library(RODBC)
db <- "C:/Projects/Online.accdb"
conn <- odbcConnectAccess2007(db) 
newData <- read.csv("C:/Projects/duplicates.csv", stringsAsFactors = F)
for(row in 1:nrow(newData)){
  query <- paste0(
    "UPDATE COL 
    SET item_price = ",newData$avg_price[row], 
    "WHERE COL.generic ='",newData$generic[row],"'"  
    )
   sqlQuery(conn, query)
}
close(conn)

1 个答案:

答案 0 :(得分:1)

在注释中,建议以下解决方案,该解决方案将更改输入文件的列名称以匹配查询的名称:

library(RODBC)
db <- "C:/Projects/Online.accdb"
conn <- odbcConnectAccess2007(db) 
newData <- read.csv("C:/Projects/duplicates.csv", stringsAsFactors = F)
names(newData) <- c("generic","avg_price")
for(row in 1:nrow(newData)){
  query <- paste0("UPDATE COL SET item_price = ",newData$avg_price[row]," WHERE COL.generic ='",newData$generic[row],"'")
   sqlQuery(conn, query)
}
close(conn)
相关问题