确定PostgreSQL中的列数据类型

时间:2013-12-08 13:15:26

标签: postgresql shell command-line

我在基于命令行的环境中与PostgreSQL进行交互,并且我希望能够确定此数据库中表列的数据类型。

举个简单的例子,我要求

SELECT * FROM products

我想知道它返回的product id列是否为我提供了文字或整数。

1 个答案:

答案 0 :(得分:2)

您可以通过查询目录来获取此类信息。

要查找特定查询,请运行psql -E(以回显隐藏查询),然后运行{ \d products。您将看到psql输出各种查询,这些查询产生有关您的表,其列类型,索引等的信息。

在这种特定情况下,您可以执行以下操作:

SELECT a.attname,
  pg_catalog.format_type(a.atttypid, a.atttypmod)
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = 'products'::regclass AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum;