代码:
dbWriteTable(con, name=symbol, value=df, row.names=FALSE, append=TRUE)
mysqlExecStatement(conn, statement, ...) 中的错误:RS-DBI 驱动程序:(无法运行语句:您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册以获取正确的语法以在附近使用'SSL(日期文本,开双,高双,低双,收双,音量'在第 1 行)
问题是股票代码“SSL”也是一个 MySQL 关键字。似乎 RMySQL 没有转义表名?
只是补充一下,代码“ALL”和“KEY”也有同样的问题,也是保留字。所以我只需要弄清楚如何用 RMySQL 正确地转义表名,但到目前为止都是空的。
编辑添加:我意识到可以使用 dbSendQuery 但真的想使用 dbWriteTable 代替。我真的很惊讶表名没有自动正确反引号?
编辑添加更多内容:例如,我还尝试了 name=paste0(dbname,".",symbol) ,它与 MySQL 一起使用以超越保留字,但我发现 dbWriteTable 函数使用构建的 dbExistsTable() 函数-in,并且该功能不适用于更改。
我可以重写 dbExistsTable 函数以覆盖内置作为一种解决方法,但我不知道如何从 dbConnect() 函数中获取 dbname 以成为继承。还在研究这个...