dbwriteTable()似乎已删除并重新创建表

时间:2019-01-11 10:40:03

标签: sql r

我正在从R将数据写入Vertica DB中的表中。我正在使用DBI和RJDBC软件包执行此操作。我连接到DB,验证表是否包含数据,将其删除并重写其他数据。

这是脚本

    tryCatch({verticaConn =dbConnect(vDriver, "jdbc:vertica://****/company", "***", "****")},
       error=function(e)
       {
         Logging("error",paste("Error conncecting to Vertica:",e))
       })
data<-data.frame(x=c(1,2,3),y=c(1,2,3))



 query<-"SELECT * FROM ESPDM.QUOTAZIONI_R_OUTPUT LIMIT 5"

  get_query = dbGetQuery(verticaConn,query)

  if (nrow(get_query)>0)

  {
    query<-"DELETE FROM QUOTAZIONI_R_OUTPUT"
    get_query = dbSendUpdate(verticaConn,query)


  }
dbWriteTable(verticaConn, "QUOTAZIONI_R_OUTPUT", 
                   as.data.frame(data))

该脚本很好用,但似乎每次运行此脚本时都会删除表并重新创建表,在这种情况下,这是不可接受的,因为其他人正在从该表中读取数据,并且每次创建表时都会丢失授权。 谢谢

1 个答案:

答案 0 :(得分:0)

答案:您需要指定append = TRUE和overwrite = FALSE。如果您仅指定append = TRUE而不指定overwrite = FALSE,则它将无法正常工作。

timedelta