RMySQL错误 - 重复行名称

时间:2016-03-17 07:38:41

标签: r rmysql

当我运行以下代码来读取我的MySQL服务器表时,我得到以下错误。

do_execve

有什么方法可以让我不要求R读取行名。我的表很好,我不想对我的MySQL表进行任何更改。

1 个答案:

答案 0 :(得分:0)

以下是一些选项:

library(RMySQL) 
library(DBI)
drv <- dbDriver("MySQL") 
con <- dbConnect (drv, dbname="mydb", user="username") 

data <- mtcars; rownames(data) <- NULL; data$row_names <- rownames(mtcars)[1]
dbWriteTable(con, "mtcars", data, overwrite = T, row.names = F)
head( dbReadTable(con, "mtcars"), 3 )
#    mpg cyl disp  hp drat    wt  qsec vs am gear carb row_names
# 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 Mazda RX4
# 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 Mazda RX4
# 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 Mazda RX4
# Warning message:
# row.names not set (duplicate elements in field) 

# suppress warnings
head( suppressWarnings(dbReadTable(con, "mtcars")), 3 )
#    mpg cyl disp  hp drat    wt  qsec vs am gear carb row_names
# 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 Mazda RX4
# 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 Mazda RX4
# 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 Mazda RX4

# rename column row_names to rn
dbSendQuery(con, "ALTER TABLE mtcars CHANGE COLUMN row_names rn TEXT")
head( dbReadTable(con, "mtcars"), 3 )
#          rn  mpg cyl disp  hp drat    wt  qsec vs am gear carb
# 1 Mazda RX4 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
# 2 Mazda RX4 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
# 3 Mazda RX4 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1

dbSendQuery(con, 'DROP TABLE mtcars')
dbDisconnect(con)