【发布时间】:2018-03-09 19:35:27
【问题描述】:
我想知道是否可以使用单个 PostgreSQL 查询从数据库表中提取列名、数据类型和一个示例值。我的目标是对一张表的所有列执行此操作。
感觉列名需要一个变量,因此您可以在查询表以获取示例值时使用它,但 Postgres 在普通 SQL 语句中不支持此功能 (How to declare a variable in a PostgreSQL query)。
我可以通过硬编码单个值来实现这一点,但是关于是否可以对表的每一列执行此操作的任何建议(在选择语句中使用其名称连接每个列以获得单个样本值)?
列 |数据类型 | sample_val -------------------------------- foo_col1 |正文 | 空 foo_col2 |正文 | 'foo_val2' foo_col3 |正文 | 空
select column_name as column, data_type, sample_val
from information_schema.columns t1
join pg_class t2 on (t1.table_name = t2.relname)
left outer join pg_description t3 on (t2.oid = t3.objoid and t3.objsubid = t1.ordinal_position)
left outer join (select CAST('foo_col2' AS text) as foo_col2, foo_col2 as sample_val from foo_schema.foo_table limit 1) n2
on (n2.foo_col2 = column_name)
where table_schema = 'foo_schema'
and table_name = 'foo_table'
order by ordinal_position
【问题讨论】:
标签: postgresql