R:尽管'append = TRUE',但为什么dbWriteTable在表存在时失败

get*_*ere 13 mysql r

我正在尝试将新数据附加到已使用该dbWriteTable方法存在的MySQL表中.我在过去使用过它没有问题,但它现在失败了因为表已经存在.这是尽管使用overwrite=FALSE, append=TRUE,

代码:

full_sum_table <- 'mydb.summary'    
dbWriteTable(conn=open_connection, name=full_sum_table, value=summary_data_final, overwrite=FALSE, append=TRUE, row.names=0)

Error in mysqlExecStatement(conn, statement, ...) : 
   RS-DBI driver: (could not run statement: Table 'summary' already exists)
[1] FALSE
Warning message:
In mysqlWriteTable(conn, name, value, ...) :
  could not create table: aborting mysqlWriteTable
Run Code Online (Sandbox Code Playgroud)

第一次调用此代码可以正常工作,但后续调用失败.

任何想法将不胜感激.谢谢

环境:

  R version 3.0.2
  Packages: DBI (I was using RMySQL but it is not available for 3.0.2)
  MySQL v5.6.14
  OS: Windows Server 7
Run Code Online (Sandbox Code Playgroud)

Sha*_*awn 5

该解决方案由作者在问题中列出,并已移至此处。

看来该错误/功能仅在使用完整表路径时才会发生,例如myDB.temp_table与简单的比较temp_table

> dbWriteTable(conn=open_connection, name='myDB.temp_table', value=summary_data_final, overwrite=FALSE, append=TRUE, row.names=0)
Error in mysqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (could not run statement: Table 'temp_table' already exists)
[1] FALSE
Warning message:
In mysqlWriteTable(conn, name, value, ...) :
  could not create table: aborting mysqlWriteTable

> dbWriteTable(conn=open_connection, name='temp_table', value=summary_data_final, overwrite=FALSE, append=TRUE, row.names=0)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

我还没有在任何地方找到这个记录,并且很惊讶我以前没有遇到过它。

  • 有什么方法可以写入非默认模式吗? (2认同)