Начиная с середины марта, dbWriteTable перестал работать правильно и теперь записывает только первую строку data.frame в таблицу MySQL. После этого я обновил MySQL, MySQL Workbench, RStudio, R и все мои пакеты R до последних версий, но без улучшений. Первоначально я думал, что это происходит только при добавлении к таблицам базы данных, но это также происходит при записи во вновь созданные таблицы.
Он не выдает сообщение об ошибке, и dbWriteTable возвращает TRUE, как если бы он был успешным, но только один строка была записана в таблицу MySQL.
Информация о сеансе
devtools::session_info()
- Session info --------------------------------------------------------------------------
setting value
version R version 3.6.3 (2020-02-29)
os Windows 10 x64
system x86_64, mingw32
ui RStudio
language (EN)
collate English_United States.1252
ctype English_United States.1252
tz America/Los_Angeles
date 2020-04-14
- Packages -------------------------------------------------------------------------
package * version date source
- assertthat 0.2.1 2019-03-21 CRAN (R 3.6.0)
- backports 1.1.6 2020-04-05 CRAN (R 3.6.3)
- bit 1.1-15.2 2020-02-10 CRAN (R 3.6.2)
- bit64 0.9-7 2017-05-08 CRAN (R 3.6.2)
- blob 1.2.1 2020-01-20 CRAN (R 3.6.3)
- callr 3.4.3 2020-03-28 CRAN (R 3.6.3)
- cli 2.0.2 2020-02-28 CRAN (R 3.6.3)
- crayon 1.3.4 2017-09-16 CRAN (R 3.5.0)
- DBI * 1.1.0 2019-12-15 CRAN (R 3.6.3)
- desc 1.2.0 2018-05-01 CRAN (R 3.5.0)
- devtools 2.3.0 2020-04-10 CRAN (R 3.6.3)
- digest 0.6.25 2020-02-23 CRAN (R 3.6.3)
- ellipsis 0.3.0 2019-09-20 CRAN (R 3.6.2)
- fansi 0.4.1 2020-01-08 CRAN (R 3.6.2)
- fs 1.4.1 2020-04-04 CRAN (R 3.6.3)
- glue 1.4.0 2020-04-03 CRAN (R 3.6.3)
- hms 0.5.3 2020-01-08 CRAN (R 3.6.2)
- magrittr 1.5 2014-11-22 CRAN (R 3.5.0)
- memoise 1.1.0 2017-04-21 CRAN (R 3.5.0)
- odbc * 1.2.2 2020-01-10 CRAN (R 3.6.3)
- pkgbuild 1.0.6 2019-10-09 CRAN (R 3.6.2)
- pkgconfig 2.0.3 2019-09-22 CRAN (R 3.6.2)
- pkgload 1.0.2 2018-10-29 CRAN (R 3.5.1)
- prettyunits 1.1.1 2020-01-24 CRAN (R 3.6.2)
- processx 3.4.2 2020-02-09 CRAN (R 3.6.2)
- ps 1.3.2 2020-02-13 CRAN (R 3.6.2)
- R6 2.4.1 2019-11-12 CRAN (R 3.6.2)
- Rcpp 1.0.4.6 2020-04-09 CRAN (R 3.6.3)
- remotes 2.1.1 2020-02-15 CRAN (R 3.6.2)
- rlang 0.4.5 2020-03-01 CRAN (R 3.6.3)
- rprojroot 1.3-2 2018-01-03 CRAN (R 3.5.0)
- rstudioapi 0.11 2020-02-07 CRAN (R 3.6.2)
- sessioninfo 1.1.1 2018-11-05 CRAN (R 3.5.1)
- testthat 2.3.2 2020-03-02 CRAN (R 3.6.3)
- usethis 1.6.0 2020-04-09 CRAN (R 3.6.3)
- vctrs 0.2.4 2020-03-10 CRAN (R 3.6.3)
- withr 2.1.2 2018-03-15 CRAN (R 3.5.0)
[1] D:/R_HOME/library
[2] D:/R_HOME/R-3.6.3/library
Воспроизводимый код
library(DBI)
#Connect to MySQL database
con <- dbConnect(odbc::odbc(),
dsn =mydsn,
database = mydatabase,
uid=myId,
pwd= myPassword)
dbListTables(con)
x <- dbWriteTable(con, "mtcars", mtcars, temporary = FALSE)
dbReadTable(con, "mtcars")
x2 <- dbWriteTable(con, "mtcars", mtcars[2:3, ], append=TRUE, temporary = FALSE)
dbReadTable(con, "mtcars")
dbListTables(con)
dbExistsTable(con, "mtcars")
dbDisconnect(con)
После x <- dbWriteTable(con, "mtcars", mtcars, temporary = FALSE)
x = TRUE
После следующего dbReadTable(con, "mtcars")
Вывод:
row_names mpg cyl disp hp drat wt qsec vs am gear carb
1 Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
После x2 <- dbWriteTable(con, "mtcars", mtcars[2:3, ], append=TRUE, temporary = FALSE)
x2 = ИСТИНА
После следующего dbReadTable(con, "mtcars")
Вывод:
row_names mpg cyl disp hp drat wt qsec vs am gear carb
1 Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
2 Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
Проблема выглядит так просто c, и я удалил и переустановил R, RStudio и DBI, odb c, а также любой другой пакет, который, как я думал, может зависеть от них, но я не добился успеха , Все пакеты актуальны.
R версия 3.6.3 (2020-02-29)
MySQL Workbench 8.0 версия 8.0.19
MySQL Workbench 8.0 версия 8.0.19 Build 15713499 Сообщество CE (64 бита)
Windows 10 Pro 64-битная версия: 18362.720
Процессор Intel® R Core ™ TM i7-7700 ЦП @ 3,60 ГГц
Системная память 16 ГБ
Любые предложения будут с благодарностью.