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

查询Redshift中所有模式(含非public)的表、列及数据类型

查询AWS Redshift所有模式下的表、列及数据类型

嘿,要搞定Redshift里全模式的表结构查询?这事儿简单,直接用Redshift内置的information_schema系统视图就能一次性获取所有信息,给你几个实用的查询方案:

基础全量查询(含所有模式)

这个查询会返回所有模式(包括系统模式、public模式和你自定义的所有模式)下的每一张表、每一列及其对应的数据类型,并且按模式、表、列的实际顺序排序:

SELECT
    table_schema AS "模式名",
    table_name AS "表名",
    column_name AS "列名",
    data_type AS "数据类型"
FROM
    information_schema.columns
ORDER BY
    table_schema, table_name, ordinal_position;

这里的ordinal_position是列在表中的物理顺序,保证结果里的列顺序和你实际建表时的一致,看起来更直观。

过滤掉系统模式(只看用户自定义模式+public)

如果不想看到pg_catalog、information_schema这些系统自带的模式内容,加个WHERE条件过滤就行:

SELECT
    table_schema AS "模式名",
    table_name AS "表名",
    column_name AS "列名",
    data_type AS "数据类型"
FROM
    information_schema.columns
WHERE
    table_schema NOT IN ('pg_catalog', 'information_schema')
ORDER BY
    table_schema, table_name, ordinal_position;

扩展查询:获取更详细的类型属性

要是你需要更细致的信息(比如字符列的最大长度、数值类型的精度和刻度),可以扩展查询字段:

SELECT
    table_schema AS "模式名",
    table_name AS "表名",
    column_name AS "列名",
    data_type AS "数据类型",
    -- 字符类型显示最大长度,数值类型显示精度
    COALESCE(character_maximum_length::VARCHAR, numeric_precision::VARCHAR) AS "长度/精度",
    numeric_scale AS "刻度"
FROM
    information_schema.columns
WHERE
    table_schema NOT IN ('pg_catalog', 'information_schema')
ORDER BY
    table_schema, table_name, ordinal_position;

小提醒

Redshift的系统视图是有权限控制的——如果你是普通用户,只能看到自己有访问权限的表和列。如果发现某些模式/表没出现在结果里,找管理员给你加对应权限就行,比如:

GRANT SELECT ON ALL TABLES IN SCHEMA 你的模式名 TO 你的用户名;

内容的提问来源于stack exchange,提问作者Betsy Curbelo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:07:11