select c.relname as "表名", cast(obj_description(c.oid) as varchar) as "表注释", a.attnum as "序号", a.attname as "字段名称", d.description as "字段注释", concat_ws('', t.typname, SUBSTRING(format_type(a.atttypid, a.atttypmod) from '(.*)')) as "字段类型" from pg_attribute a left join pg_description d on d.objoid = a.attrelid and d.objsubid = a.attnum left join pg_class c on a.attrelid = c.oid left join pg_type t on a.atttypid = t.oid where a.attnum >= 0 and c.relname in('ods_vem_busi_base') order by c.relname desc, a.attnum asc;这段pgsql查出的表结构与真实表结构不一致,对比真实表结构字段翻倍这是为什么
时间: 2024-03-29 10:38:35 浏览: 85
华为GaussDB(DWS)最佳实践系列之资源监控类.md
这种情况可能是由于表中存在了多个相同的字段导致的。在 PostgreSQL 中,允许在一个表中定义多个同名的字段,只要它们的数据类型、约束条件等属性都相同。而这段 SQL 查询语句是基于系统表 pg_attribute 来获取表结构信息的,它会将每个同名的字段都列出来,因此导致了结果集中每个字段都重复出现了多次。如果想要查看真实的表结构,可以使用 \d+ 命令或者在 pgAdmin 等图形化界面中查看。
阅读全文