在?DBI::dbListTables我们可以读到:
这应该包括视图和临时对象
确实如此。
我怎样才能只看到表格,不包括视图?
RPostgres::Postgres()如果重要的话我正在使用驱动程序。
pg_tables使用表的系统目录视图:
dbGetQuery(con, "SELECT * FROM pg_tables")
Run Code Online (Sandbox Code Playgroud)
该视图
pg_tables提供对有关数据库中每个表的有用信息的访问。
不包含视图、物化视图或临时表,仅包含常规表(包括UNLOGGED表)。看:
您可能希望排除系统表并仅检索架构和表名称:
dbGetQuery(con, "SELECT schemaname, tablename FROM pg_catalog.pg_tables WHERE schemaname !~ '^pg_' AND schemaname <> 'information_schema'")
Run Code Online (Sandbox Code Playgroud)
我为目录表添加了显式架构限定:pg_catalog.pg_tables。通常没有必要,但可以防止设置混乱search_path。看:
pg_views获取视图 - 如果您需要:
dbGetQuery(con, "SELECT * FROM pg_views")
Run Code Online (Sandbox Code Playgroud)
该视图
pg_views提供对数据库中每个视图的有用信息的访问。