我正在尝试将新数据附加到已使用该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)
该解决方案由作者在问题中列出,并已移至此处。
看来该错误/功能仅在使用完整表路径时才会发生,例如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)
我还没有在任何地方找到这个记录,并且很惊讶我以前没有遇到过它。
| 归档时间: |
|
| 查看次数: |
8041 次 |
| 最近记录: |