我正在运行一个脚本,将不同的数据集存储到MySQL数据库中。到目前为止,这是有效的,但只是顺序。 e.g:
# write table1
replaceTable(con,tbl="table1",dframe=dframe1)
# write table2
replaceTable(con,tbl="table2",dframe=dframe2)
如果我同时选择(我使用StatET / Eclipse)并运行选择,我会收到错误:
Error in function (classes, fdef, mtable) :
unable to find an inherited method for function "dbWriteTable",
for signature "MySQLConnection", "data.frame", "data.frame".
我想这与我的con在第二个请求开始时仍然很忙的事实有关。当我一行一行地运行脚本时,它运行正常。因此我想知道,我怎么能告诉R等待第一个请求准备就绪然后继续?如何使R脚本交互(只是控制台,如剧情示例 - 没有tcl / tk)。
编辑:
require(RMySQL)
replaceTable <- function(con,tbl,dframe){
if(dbExistsTable(con,tbl)){
dbRemoveTable(con,tbl)
dbWriteTable(con,tbl,dframe)
cat("Existing database table updated / overwritten.")
}
else {
dbWriteTable(con,tbl,dframe)
cat("New database table created")
}
}
答案 0 :(得分:1)
dbWriteTable
有两个重要的论点:
overwrite: a logical specifying whether to overwrite an existing table
or not. Its default is ‘FALSE’.
append: a logical specifying whether to append to an existing table
in the DBMS. Its default is ‘FALSE’.
对于过去的项目,我已经成功地实现了对这些表的适当组合的追加,覆盖,创建......。