Node.js 使用节点获取particuler Postgres数据库中的所有表?

Node.js 使用节点获取particuler Postgres数据库中的所有表?,node.js,postgresql,node-postgres,postgresql-12,Node.js,Postgresql,Node Postgres,Postgresql 12,我需要使用node获取特定Postgres数据库中的所有表。但没有找到任何方法来实现这一点。有什么办法可以做到吗 例如,假设我有一个名为“TestDatabase”的数据库,它包含4个表(只需假设它可以有更少或更多)Person、Company、Cloth和Animal。 我需要使用node获取所有节点的名称 我还使用node postgres('pg')连接数据库。这是一个通用解决方案。使用以下查询: SELECT relname FROM pg_class WHERE re

我需要使用node获取特定Postgres数据库中的所有表。但没有找到任何方法来实现这一点。有什么办法可以做到吗

例如,假设我有一个名为“TestDatabase”的数据库,它包含4个表(只需假设它可以有更少或更多)Person、Company、Cloth和Animal。 我需要使用node获取所有节点的名称


我还使用node postgres('pg')连接数据库。

这是一个通用解决方案。使用以下查询:

SELECT
   relname
FROM
   pg_class
WHERE
   relkind = 'r';
pg_class
是一个系统目录,它保存了有关类似于表的对象的信息。因此需要将
relkind
限制为“r”。这将包括所有表类型。要进一步限制,请参见下面链接中的
relpersistence


您也可以使用
信息\u模式
。它并不比系统目录中的pg_*对象更好,而是标准化的,更便于携带。这是:

选择table_schema | |'.| | table_name作为table_fullname
来自信息_模式。“表”
其中table_type='基表'
和表_schema不在('pg_catalog','information_schema');
系统对象已被此表达式过滤

table\u schema不在('pg\u catalog'、'information\u schema')

您可以进一步修改它,使其仅包含您需要的模式。

我将修改您的问题,以表明它现在说的“我需要获取特定Postgres数据库中的所有表…”。对于所需内容,请以创建表的用户的身份运行@Stefanov.sm answer中的查询。“information_schema”查询只会向您显示运行查询的用户创建的或有权访问的表。我不知道Postgres上面有多少内容。通过执行此查询,我获得了太多信息…例如pg_Stattics、pg_types extra。我只需要我创建的表。