提问和回答:
PostgreSQL不支持describe table
或describe view
。正如人们可能从谷歌发现的那样,PostgreSQL使用\d+
代替。
但是,如果使用PgAdmin访问PostgreSQL(我实际上使用的是PgAdmin 3),那么\d+
就不能工作。那我们该怎么做呢
我在玩PgAdmin 3中的查询工具时想到了这个问题。我有一个“嗯,废话!“当我想到PgAdmin 3的主窗口时,在窗口左侧的树上。下
<servername>
-> <databasename>
-> Schemas
-> <schemaname>
-> Tables
是我的表的列表,单击表名显示的文本与\d+
显示的文本非常相似。
所以为了那些没有马上发现这个问题的人的利益,这里有一个答案。
6条答案
按热度按时间dojqjjoe1#
PostgreSQL还支持标准的SQL信息模式来检索数据库中对象的详细信息。
也就是说,要获取列信息,您可以查询
information_schema.columns
视图:检查here以获取有关信息模式的PostgreSQL特定细节。
d6kp6zgx2#
psql的\d命令向数据库发送一组查询以询问模式,然后打印结果。
如果您希望能够直接通过SQL提取类似的信息,则可以使用'-E' psql选项让它显示这些查询。
话虽如此,psql使用内部的Postgresql目录表,而不是标准化的'information_schema'模式(请参阅Anchorthflowers的回答)。因此,如果您关心可移植性,或者甚至保证它从一个版本到下一个版本都能继续工作,那么您可能应该使用information_schema。
1u4esq0p3#
和bash shell中的直接代码:
pprl5pva4#
要获得describe查询将返回的完整视图,请右键单击感兴趣的关系/表并选择Properties.然后使用提供的窗口中的“列”选项卡。
唯一的区别是该窗口不给予有关外键关系的信息。
q9yhzks05#
下面是Gareth Flowers的回答:
并且确保使用表的小写名称..
oug3syen6#
可以使用以下命令:\d表名称(_N)