在postgresql中如何从数据库中检索出所有的表名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在postgresql中如何从数据库中检索出所有的表名相关的知识,希望对你有一定的参考价值。

1、查看当前数据库中所有的模式。

2、如果想查看模式中所有的对象信息,可以通过\\d 模式名.* 加上通配符的方式来进行查看。

3、在查看模式中的对象时一般使用的方式都是模式名.对象名的方式。

4、在postgresql中有一个类型于linux系统中$PATH的环境变量search_path,默认情况下它的值是当前数据库值和公共模式值。

5、如果想其它模式也添加在搜索路径中可通过如下命令来进行设置。

6、设置完成后如果我们再访问tec模式下的对象,就不需要再使用模式名.对象名的方式了,直接使用对象名即可进行操作。

参考技术A

具体步骤如下:

1.查找当前数据库中的所有模式。

2.如果要查看模式中的所有对象信息,可以通过\d模式名,还有通配符来查看。

3.查看模式中对象的常用方式是模式名,对象名的方式。

4.在Postgresql中,Linux系统有一个$path类型的环境变量search-path。默认情况下,它的值是当前数据库值和公共模式值。

5.如果要将其他模式添加到搜索路径,可以使用以下命令进行设置。

6.设置之后,如果再在ec模式下访问对象,则不需要使用模式名。对象名,我们可以直接使用对象名进行操作。

参考技术B 1、通过命令行查询
\d 数据库 —— 得到所有表的名字
\d 表名 —— 得到表结构

2、通过SQL语句查询
"select * from pg_tables" —— 得到当前db中所有表的信息(这里pg_tables是系统视图)

"select tablename from pg_tables where schemaname='public'" —— 得到所有用户自定义表的名字(这里"tablename"字段是表的名字,"schemaname"是schema的名字。用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下)
参考技术C 点击确定后大家便可以查看postsql已有的数据库了; 注:pgAdmin3的数据库和查询一个表; 9.1 SELECT; 要从一个表中检索数据就是查询这个表。 SQL 参考技术D 进入数据库,执行SQL:select * from pg_tables 查询该数据库包含的所有表

如何在 POSTGRESQL 中从两个不同的数据库中检索数据

【中文标题】如何在 POSTGRESQL 中从两个不同的数据库中检索数据【英文标题】:How to retrieve data from two different database in POSTGRESQL 【发布时间】:2016-03-30 11:32:29 【问题描述】:

我有两个数据库 cvtl 和 cvtl_db,我需要编写一个查询来从 cvtl 中的表 A 和 cvtl_db 中的表 B 中检索数据。

Postgres 抛出错误:未实现跨数据库引用

【问题讨论】:

使用外部数据包装器:postgresql.org/docs/current/static/postgres-fdw.html 好的,谢谢,我会尝试使用它,但我可以用 DBLINK 代替 这是另一种选择。但 FDW 会更有效率 感谢您的帮助:) 【参考方案1】:

基本上你有两种方法:

    较旧的工具。 如果您需要支持旧版本的 PostgreSQL,请使用 dblink 或 DBI-link。这两个为跨多个 PostgreSQL 版本的跨数据库查询提供了强大的支持。 pl/proxy 是另一种可能性。

    较新的工具。 较新的方法是使用外部数据包装器。它具有更多功能(例如更好的事务处理),并且在支持方面可能比今天的 dblink 等有更多的关注。

【讨论】:

以上是关于在postgresql中如何从数据库中检索出所有的表名的主要内容,如果未能解决你的问题,请参考以下文章

如何从 postgreSQL 表中检索随机数据行?

PostgreSQL 如何检索数据库中所有表里,包含FileName字段的表名

使用 Powershell 从 PostgreSQL 检索数据

从 PostgreSQL 数据库中检索评论

如何在PostgreSQL中存储和检索PHP serialize()?

在 PostgreSQL 中准备、存储、检索加密数据