将数据框写入MySql数据库表

14
在R中如何将数据框写入MySQL数据库?
dateTime            host    authId     sessionId      status                    action 
2012-08-22 14:58:23 foo.com 221501398 2c10b368ae23ba3        questions#instant_answers
2012-08-22 14:58:23 foo.com 221501398 22c10b368ae23                      questions#new
2012-08-22 14:58:23 foo.com 221501398 01a36f64bd3f80c                     sessions#new

我想一次性将数据框写入到MySQL数据库表中。 我已经使用RMySql包连接并建立了连接。

谢谢

3个回答

30

使用dbWriteTable函数。它看起来像这样:

dbWriteTable(connection, value = data.frame, name = "MyTable", append = TRUE ) 

该函数有清晰的文档说明。

P.S. 还可以参考: RMySQL dbWriteTable with field.types


1
对我来说它没有起作用。正确的语法是dbWriteTable(connection, "MyTable", data.frame, append = TRUE)。文档:http://cran.r-project.org/web/packages/RMySQL/RMySQL.pdf - Miquel
添加 row.names=FALSE 将有助于无缝转移。 - Apricot

7

请参阅help(dbSendQuery)以获取SQL中通用的update ...语句,参阅help(dbWriteTable)将整个数据框写入新表。


1
使用以下命令对我有效。请注意,这将把 yourtable 中的行追加到名为 yourTableInMySQL 的数据库中。
library(RMySQL)
dbWriteTable(con, "yourTableinMySQL", yourtable, append = TRUE)

我花了几个小时都没有成功地运行DBI的同名函数。然而,RmySQL::dbWiteTable立即起作用了。 - eod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接