gpt4 book ai didi

mysql - RODBC sqlSave 的问题

转载 作者:可可西里 更新时间:2023-11-01 06:31:38 26 4
gpt4 key购买 nike

我在使用 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"))

这对我来说没有任何意义,因为列已经在具有相同列名的数据框中。

最佳答案

我知道这是一个非常老的问题,但是我刚才遇到了(并为我的实例解决了)同样的问题,得到了这个错误

Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test,  : 
missing columns in 'data'

来自使用

sqlSave(

在 rodbc 包中。

我通过设置解决了

,fast = F

如果第一个 google 搜索结果中的其他人落在这里,希望这对您有所帮助

编辑:所以我从那以后就更多地研究了这个。按照我在下面的建议将标志设置为“F”时,将行逐行插入数据库。虽然它是“T”,但如果一行不正确,它就会失败,但现在那一行失败了,而你不知道它。所以数据库可能丢失了您认为在那里的数据。检查数据库中的行数与您希望从数据框中插入的行数。您可能有一个不兼容的值。我现在要做的是在循环中使用“粘贴”函数来创建一个字符串,例如“插入 tableName 值(“eg1”,“eg2”)”这样我就可以得到错误消息,说明为什么它没有去进入数据库

关于mysql - RODBC sqlSave 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com