pgsql查询数据时,顺便查询出每个字段的注释
时间: 2024-09-11 16:16:01 浏览: 49
在PostgreSQL数据库中,你可以通过查询系统表来获取每个字段的注释信息。每个表及其字段的注释通常存储在`pg_catalog`模式的`pg_description`表中。以下是一个查询示例,用于获取指定表的字段注释:
```sql
SELECT
a.attname AS field_name, -- 字段名称
pg_catalog.obj_description(a.attrelid) AS table_comment, -- 表注释
pg_catalog.obj_description(a.attrelid, 'pg_attrdef') AS default_value, -- 默认值注释
d.description AS field_comment -- 字段注释
FROM
pg_catalog.pg_attribute a
LEFT JOIN pg_catalog.pg_description d ON
d.objoid = a.attrelid AND
d.objsubid = a.attnum AND
d.objoid = 'your_table_name'::regclass -- 替换'your_table_name'为你的表名
WHERE
a.attnum > 0 AND
NOT a.attisdropped AND
a.attrelid = 'your_table_name'::regclass; -- 替换'your_table_name'为你的表名
```
确保将上述SQL中的`'your_table_name'`替换为你想查询注释的表名。
请注意,使用`'pg_attrdef'`查询默认值注释时,该默认值必须是用`CREATE TABLE`或`ALTER TABLE`语句中直接定义的,如果是通过触发器或规则生成的默认值,这些信息则不会出现在`pg_description`表中。
阅读全文