如何将 sqlSave 函数与 R 中的现有表一起使用

Posted

技术标签:

【中文标题】如何将 sqlSave 函数与 R 中的现有表一起使用【英文标题】:How to use sqlSave function with existing table in R 【发布时间】:2013-02-14 19:42:47 【问题描述】:

我可以使用 sqlSave 创建一个新表并将数据附加到该表,但我希望平板电脑有一些额外的列(例如,“ID”自动递增列 - 我在创建后手动添加这些列表和测试,我可以保存到它并附加到它)。当我在添加这些列后尝试使用 sqlSave 时,我在尝试使用 sqlSave 追加更多数据时遇到错误

Error in odbcUpdate... missing columns in 'data'

所以我在我的数据框中添加了一个 ID 列(因此它的列将与我的数据库表匹配)并尝试将其设置为“NULL”、NULL 和“”。我不断收到同样的错误。

有什么想法吗?

谢谢, 艾瑞克

附:我将 RODBC 与 mysql OOBC 驱动程序版本 5.1 一起使用

【问题讨论】:

这不是 SQL 问题吗?我很确定向现有表添加新列的唯一方法是使用独立的更改表查询... 是的,事件顺序是这样的:使用sqlSave创建表,使用sqlSave追加一些表,使用“ALTER TABLE”手动添加ID列,尝试使用sqlSave追加更多数据(尝试几种不同的方式) 好的,从您的问题中不清楚您是仅在 R 数据框中添加列,还是在 db 表本身中添加列。 【参考方案1】:

啊,我明白了。 sqlSave 函数似乎将所有内容都小写。我不确定它在幕后做了什么检查,但是如果我创建一个“id”列它可以工作,但一个“ID”列却不行。

【讨论】:

【参考方案2】:

尝试 odbcConnect 中的 case="nochange" 参数。我将 RODBC (1.3-10) 与 MySQL ODBC 驱动程序版本 5.2 一起使用,它适用于我。

【讨论】:

以上是关于如何将 sqlSave 函数与 R 中的现有表一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 R 中的函数 sqlSave() 将数据附加到具有 IDENTITY 主键的 SQL Server 表中?

无法使用R中的sqlSave追加到SQL Server表

RODBC sqlSave() 和映射列名

sqlSave 在 R 中创建数据框并将其保存到 sql 表

无法在 R 中使用 sqlSave 追加到 SQL Server 表

将 sqlSave 与 Microsoft Access 数据库一起使用