RMySQL - dbWriteTable()将TRUE逻辑写为0

时间:2017-10-17 04:58:54

标签: mysql r

在RMySQL包中使用dbWriteTable()时,无论值如何,逻辑值都写为0。我希望TRUE值会返回1:

# Setup
# con is a valid MySQLConnection object
> df <- data.frame(string = 'Testing Logical Values', 
                 t_lgl = TRUE, 
                 f_lgl = FALSE, 
                 stringsAsFactors = FALSE)
> df
                  string t_lgl f_lgl
1 Testing Logical Values  TRUE FALSE
> class(df[,2])
[1] "logical"

# Test
# This schema has no tables until dbWriteTable() is called
> dbWriteTable(con,'test_table',df)
[1] TRUE

# Result
> dbReadTable(con,'test_table')
                  string t_lgl f_lgl
1 Testing Logical Values     0     0
> class(dbReadTable(con,'test_table')[,2])
[1] "integer"

t_lgl值是否应该返回1,因为它是TRUE并作为逻辑传递给dbWriteTable()?

1 个答案:

答案 0 :(得分:0)

RMySQLbeing phased out支持RMariaDB。 使用RMariaDB我能够成功地将logical值写入MySQL数据库,如下所示:

con <- dbConnect(RMariaDB::MariaDB(), group = "my-db")

dbWriteTable(con, "test", data.frame(a=T, b=F), overwrite = T)