Что не так с данным кодом..
dbExecute(con_pratham,paste("Update unit_dummy set isDeleted=",paste(data_to_update$IsDeleted)," , status =", paste0(data_to_update$status), "where UnitId =",paste(data_to_update$UnitId)))
Он должен обновлять два столбца "status" и " IsDeleted" с учетом его UnitId. Здесь "data_to_update" - это кадр данных, имеющий 500 наблюдений. каждая из этих строк имеет "статус" и "IsDeleted" вместе с "UnitId". Когда я просто печатаю вышеприведенный код, он отлично продуцирует примерно 500 синтаксисов SQL SQL.
[476] "Update unit_dummy set isDeleted= 0 , status = 1 where UnitId = 56061"
[477] "Update unit_dummy set isDeleted= 0 , status = 1 where UnitId = 56063"
[478] "Update unit_dummy set isDeleted= 0 , status = 1 where UnitId = 56065"
[479] "Update unit_dummy set isDeleted= 1 , status = 0 where UnitId = 56069"
[480] "Update unit_dummy set isDeleted= 1 , status = 0 where UnitId = 56070"
[481] "Update unit_dummy set isDeleted= 1 , status = 1 where UnitId = 56095"
[482] "Update unit_dummy set isDeleted= 0 , status = 1 where UnitId = 56100"
[483] "Update unit_dummy set isDeleted= 1 , status = 0 where UnitId = 56132"
Когда я просто копирую любую из этих строк sql и запускаю на сервере, она отлично работает, но не через R. Пожалуйста, помогите мне в этом.
Я бы попробовал что-то вроде этого:
sqls <- paste("Update unit_dummy set isDeleted=",paste(data_to_update$IsDeleted)," , status =",
paste0(data_to_update$status), "where UnitId =",paste(data_to_update$UnitId))
for (sql in sqls){
dbExecute(con_pratham, sql)
}
dbExecute()
будет передавать только одну команду за раз, поэтому вам может потребоватьсяlapply()
или циклfor
для передачи каждой команды в базу данных.