使用dplyr :: tbl引用PostgreSQL(Amplitude分析)表失败

时间:2017-08-10 00:35:35

标签: r postgresql dplyr amplitude

我无法使用这种dplyr方法连接到PostgreSQL表(振幅分析):

dplyr::tbl(amplitude_db, from = "app123.myEvent") %>% show_query()

输出:

 RS-DBI driver: (could not Retrieve the result : ERROR:  relation "app123.myEvent" does not exist

然而,这种方法有效:

dplyr::tbl(myCon,sql(("SELECT * FROM app123.myEvent"))) %>% show_query()

输出:

<SQL>
SELECT * FROM app123.myEvent
> 

为什么第一种方法失败的任何想法?

2 个答案:

答案 0 :(得分:1)

如果您使用包in_schema中的dbplyr,我认为您的第一种方法可行:

tbl(myCon, in_schema("app123", "myEvent")) %>% show_query()

如果您知道要从同一模式app123查询多个表,那么将搜索路径设置为此模式可能是个好主意:

dbSendQuery(myCon, "set search_path to app123")

(这样您每次都不需要指定架构)

答案 1 :(得分:0)

振幅支持在这里指出,这是一个已知的问题: https://github.com/rstats-db/RPostgres/issues/32