将行从 R 追加到 MYSQL 表

  • 本文关键字:MYSQL 追加 r
  • 更新时间 :
  • 英文 :


我在mysql中有表'df1',现在我正在尝试将下一组行(df2)附加到df1,

我正在尝试将 df2 附加到 df1,如下所示

connection <- dbConnect(MySQL(), user = 'root', password = 'pass',
                        host = 'localhost', dbname = 'data')
dbWriteTable(connection,"df1",df2,row.names=T,append=T)
ERROR:could not run statement: Table 'df1' already exists

请建议对上述代码进行任何修改

提前致谢

以下内容对我来说很好用:

library(RMySQL)
library(stringi)
con <- dbConnect(MySQL(), user = 'test', password = '****',
                 host = 'localhost', dbname = 'test')
dbf1 <- data.frame(x=round(runif(500, 1, 1000),0),
                   y=rnorm(500, mean=100, sd=21),
                   z=stri_rand_strings(500, 5),
                   stringsAsFactors = FALSE)
dbWriteTable(con, "test1", dbf1)
dbDisconnect(con)

然后:

library(RMySQL)
library(stringi)
con <- dbConnect(MySQL(), user = 'test', password = '****',
                 host = 'localhost', dbname = 'test')
dbf2 <- data.frame(x=round(runif(300, 10000, 11000),0),
                   y=rnorm(300, mean=100, sd=21),
                   z=stri_rand_strings(300, 5),
                   stringsAsFactors = FALSE)
dbWriteTable(con, "test1", dbf2, append = TRUE)
dbGetQuery(con, "SELECT count(x) FROM test1")
dbDisconnect(con)

查询返回:

  count(x)
1      800

显示第二组 300 行已按预期追加。

您需要给出我们可以运行的错误的工作示例。首先想到的是,使用 T 和 F 作为 TRUE 和 FALSE 的缩写是不好的做法!虽然 TRUE 和 FALSE 是 R 中的保留字,不能更改,但 T 和 F 是普通变量,可以修改。因此,如果不看到您的整个脚本,就无法保证row.names=T,append=T实际上意味着append=TRUE

最新更新