我怎样才能真正看到DBI :: dbWriteTable生成的原始查询?

时间:2016-11-10 08:53:53

标签: r r-dbi

我想知道是否有办法检索dbWriteTable发送给DBMS的SQL查询。例如,对于以下示例。有没有办法获得查询?

library(DBI)

con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars[1:10, ])
dbDisconnect(con)

编辑:2016-11-11

作为Postgres用户,我最感兴趣的是使用RPostegreSQL发送的命令。在@krlmlr之后,我发现有一个函数postgresqlCopyInDataframe本身调用C函数RS_PostgreSQL_CopyInDataframe。所以我在这里遇到了一个死胡同,因为C超出了我的技能。任何想法都欢迎......

1 个答案:

答案 0 :(得分:1)

RSQLite的开发版本即将推出CRAN,使用DBI::sqlCreateTable()。此函数返回创建特定表的SQL:

con <- dbConnect(RSQLite::SQLite(), ":memory:")
sqlCreateTable(con, "mtcars", mtcars[1:10, ])
dbDisconnect(con)

对于其他驱动程序,您可以在驱动程序的源代码中查找方法定义,例如,通过showMethods("dbWriteTable", includeDefs = TRUE)并从那里继续。