我正在尝试将新数据附加到已使用该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) 目前,要在 PostgreSQL 表中插入数据,我必须创建一个空表,然后insert into table values ...将数据框折叠为包含所有值的单个字符串。它不适用于大型数据帧。
在dbWtriteTable()不PostgreSQL的工作,并提供了以下错误......
Error in postgresqlpqExec(new.con, sql4) : RS-DBI driver: (could not Retrieve the result : ERROR: syntax error at or near "STDIN" LINE 1: COPY "table_1" FROM STDIN
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下 hack 作为回答之前提出的类似问题的建议。这是链接...如何使用自动递增的主键将数据从 R 写入 PostgreSQL 表?
body_lines <- deparse(body(RPostgreSQL::postgresqlWriteTable))
new_body_lines <- sub(
'postgresqlTableRef(name), "FROM STDIN")',
'postgresqlTableRef(name), "(", paste(shQuote(names(value)), collapse = ","), ") FROM STDIN")',
body_lines,
fixed = TRUE
)
fn <- RPostgreSQL::postgresqlWriteTable
body(fn) <- parse(text = new_body_lines)
while("RPostgreSQL" %in% search()) …Run Code Online (Sandbox Code Playgroud)