RMySQL将数据添加到临时表

时间:2017-07-08 15:34:55

标签: mysql r rmysql r-dbi

我在MySQL服务器上工作,我有CREATE TEMPORARY权限,但没有'常规'创建权限。此外,我正在使用RMySQL。

我遇到以下奇怪的行为,对我来说,或者表明(a)RMySQL包中存在错误或(b)我完全遗漏了其他错误。

当我尝试将data.frame写入临时表时,如下所示:

df <- data.frame(IDX=c(1:10), IDY=c(10:1))
dbWriteTable(con, "Mapping", df, row.names=FALSE, overwrite=TRUE, temporary=TRUE)

我收到错误could not run statement: CREATE command denied to user,表示temporary=TRUE语句没有正确添加到CREATE语句中。

为什么我尝试通过先自己添加临时表然后手动添加数据来解决这个问题,我遇到了另一个问题:

dbSendQuery(con, "CREATE TEMPORARY TABLE Mapping (IDX INT, IDY INT, PRIMARY KEY (IDX, IDY));")
out <- dbGetQuery(con, "SHOW COLUMNS FROM Mapping;"); out
         Field    Type Null Key Default Extra
1    ContestID int(11)   NO PRI       0      
2 SubmissionID int(11)   NO PRI       0      
sql <- sqlAppendTable(con, "Mapping", mapping, row.names=FALSE)
rs <- dbExecute(con, sql)

我收到could not run statement: Got a packet bigger than 'max_allowed_packet' bytes错误。

有人可以帮忙吗?还有另一种方法可以让它发挥作用吗?

0 个答案:

没有答案