如何在postgres中按排序顺序简明地显示表列的列表?

时间:2015-08-21 18:44:12

标签: sql postgresql

我知道我可以通过执行这个long sql命令(在这种情况下从表'orders')获得按排序顺序显示的表的列列表:

select column_name from information_schema.columns
where table_schema = 'public' and table_name = 'orders'
order by column_name;

如何最简洁地完成这项工作?例如,如果内置\ _d命令接受了一个标志,则可能是:

\ d -s orders

当然,这不起作用,但我想要类似的东西,以避免不得不重复输入上面的整个原始查询。也许定义一个可以通过表名参数化的简洁调用的函数?

2 个答案:

答案 0 :(得分:0)

原始查询尽可能简洁。要最大限度地减少使用它的输入工作,请创建一个视图(使用短名称):

create view cols as
select column_name, table_name tab
from information_schema.columns
where table_schema = 'public'
order by column_name

然后使用它:

select * from cols where tab = 'mytable'

请注意(使用postgres)您可以使用订单定义视图(无需每次都输入订单)。

答案 1 :(得分:0)

这可能不是您想要的,但这是我目前解决问题的方法。我使用shell:

psql -t db_name -c '\d table_name' | sort

这将打印出一个已排序的列列表,这使得在随机远程系统上更容易发现模式。无需记住任何任意sql的附加好处。