我在使用 RODBC 将数据框插入 mySql 数据库时遇到了一些困难。下面是我正在使用的代码:
data <- data.frame(analysedDataID=c(1,2,3), plateWell=c("a","b","c"), screenPlateOrder=c(1,2,3), wellData=c("A","B","C"))
con <- odbcConnect(DSN, uid="user_id", pwd="some_password")
query <- sqlSave(con, data, tablename = 'wellAnalysedDataTable', rownames=FALSE, append=TRUE)
当我尝试执行此操作时,我收到以下错误消息:
Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test, :
missing columns in 'data'
这是我尝试将数据插入到的特定表:
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| analysedDataID | int(10) | YES | | NULL | |
| plateWell | varchar(10) | YES | | NULL | |
| screenPlateOrder | int(10) | YES | | NULL | |
| wellData | varchar(30) | YES | | NULL | |
+------------------+-------------+------+-----+---------+-------+
在这一点上,我真的很困惑,因为我一遍又一遍地阅读文档,但无法让它工作。任何帮助将不胜感激!
干杯!
谢谢!我添加了您建议的更改,并且该案例似乎不再存在问题。但是我不断收到以下错误消息:
'index column(s) analysedDataID plateWell screenPlateOrder wellData not in data frame'
我正在执行的生成此语句的语句是:
sqlUpdate(con, data, tablename="wellAnalysedDataTable", index=c("analysedDataID", "plateWell", "screenPlateOrder", "wellData"))
这对我来说没有任何意义,因为列已经在具有相同列名的数据框中。