如何将R DataFrame插入SQL Server中的现有表中



尝试在线找到了一些不同的软件包和方法后,我尚未找到一种解决方案,该解决方案可用于将r从r插入从r中插入SQL Server的现有表中。我在MySQL方面取得了巨大的成功,但是SQL Server似乎更加困难。

我设法使用DBI软件包编写了一个新表格,但是我找不到一种插入使用此方法的方法。查看文档,似乎没有一种插入的方式。

由于使用RODBC软件包中的SQLQUERY有超过1000行的数据,似乎也很不可分割。

有人可以建议将大量数据从数据框中插入现有SQL表中的工作方法吗?

使用R-Postgres特定驱动程序的R和PostgreSQL我有类似的需求。我想SQLServer可能存在类似的问题。我发现最好的解决方案是使用DBWritEtable或一个基础函数写入数据库中的临时表,从流来写入非常大的表(例如,对于Postgres,PostgresqlcopyIndataFrame,例如)。后者通常需要在定义和对齐SQL数据类型和R类以确保写作方面需要更多的工作,而DBWritetable的位置往往更容易。一旦写入临时表,就会发布SQL语句,以便像在数据库环境中一样插入表中。以下是使用高级DBI库数据库调用的示例:

  dbExecute(conn,"start transaction;")
  dbExecute(conn,"drop table if exists myTempTable")
  dbWriteTable(conn,"myTempTable",df)
  dbExecute(conn,"insert into myRealTable(a,b,c) select a,b,c from myTempTable")
  dbExecute(conn,"drop table if exists myTempTable")
  dbExecute(conn,"commit;")

相关内容

最新更新