You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PostgreSQL/PGAdmin查询获取包含指定非空列的所有表

获取PostgreSQL中包含指定列且该列数据非空的表

要快速找到所有包含指定列且该列存在非空数据的表,可以利用PostgreSQL的系统信息表结合动态查询实现,以下是直接可用的查询方案:

查询语句

替换语句中的target_column为你要查找的列名即可:

SELECT 
    table_schema,
    table_name
FROM 
    information_schema.columns
WHERE 
    column_name = 'target_column'
    -- 排除系统内置模式,避免返回系统表
    AND table_schema NOT IN ('information_schema', 'pg_catalog')
GROUP BY 
    table_schema, table_name
HAVING 
    EXISTS (
        SELECT 1
        FROM (table_schema || '.' || table_name)::regclass t
        WHERE t.target_column IS NOT NULL
    );

关键说明

  • 系统表筛选:information_schema.columns存储了数据库中所有表的列信息,通过它可以快速定位包含目标列的表。
  • 排除系统模式:table_schema NOT IN (...)用于过滤PostgreSQL自带的系统表,只返回用户创建的业务表。
  • 非空数据验证:(table_schema || '.' || table_name)::regclass将模式名和表名拼接成合法的表引用,再通过EXISTS子查询检查该列是否存在非空数据。
  • 大小写兼容:如果列名创建时用双引号区分大小写(比如"UserID"),查询时需保持格式一致,将column_name = 'target_column'改为column_name = '"UserID"'。

在PGAdmin中操作

打开PGAdmin的查询编辑器,粘贴上述语句,替换目标列名后点击执行按钮,即可得到符合条件的表列表。

内容的提问来源于stack exchange,提问作者Bryan Masias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 06:55:17