Проблема с обновлением таблицы MySql через R

0

Что не так с данным кодом..

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. Пожалуйста, помогите мне в этом.

  • 1
    Я собираюсь предположить, что dbExecute() будет передавать только одну команду за раз, поэтому вам может потребоваться lapply() или цикл for для передачи каждой команды в базу данных.
  • 0
    Да, я просто понимаю это! dbExecute () передает одну команду за раз.
Теги:

1 ответ

0
Лучший ответ

Я бы попробовал что-то вроде этого:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню