当前位置: 首页 > 知识库问答 >
问题:

列出PostgreSQL架构中的表

段干跃
2023-03-14

当我在psql中执行\dt时,我只得到当前模式中的表列表(public默认)。

如何获取所有模式或特定模式中所有表的列表?

共有3个答案

闻飞跃
2023-03-14

除了信息\u模式之外,还可以使用pg\u表

select * from pg_tables where schemaname='public';
弘康安
2023-03-14

您可以从information\u schema

SELECT * FROM information_schema.tables 
WHERE table_schema = 'public'
伏德义
2023-03-14

在所有模式中:

=> \dt *.*

在特定模式中:

=> \dt public.*

使用正则表达式有一些限制是可能的

\dt (public|s).(s|t)
       List of relations
 Schema | Name | Type  | Owner 
--------+------+-------+-------
 public | s    | table | cpn
 public | t    | table | cpn
 s      | t    | table | cpn

高级用户可以使用正则表达式表示法(如字符类,例如[0-9])来匹配任何数字。除外,所有正则表达式特殊字符均按照第9.7.3节的规定工作如上所述用作分隔符,*转换为正则表达式表示法* 已翻译为 ,以及按字面匹配的$。您可以在需要时通过编写 用于 (R |)用于R*,或(R |)用于R <代码>$不需要作为正则表达式字符,因为模式必须匹配全名,这与正则表达式的常规解释不同(换句话说,$自动附加到模式中)。如果不希望锚定模式,请在开头和/或结尾处写入*。请注意,在双引号中,所有正则表达式特殊字符都会失去其特殊含义,并按字面进行匹配。此外,正则表达式特殊字符在运算符名称模式中按字面匹配(即,\do的参数)。

 类似资料: