【问题标题】:Redshift column names红移列名
【发布时间】:2019-01-19 21:04:07
【问题描述】:

我是红移新手。我在“abc”模式中有一些表,需要提取其列名和主键信息。有人可以指导。 假设架构名称为“abc”,表名称为“xyz”,其列需要列在一行中。

【问题讨论】:

  • 在 Redshift 中 - 你知道没有强制执行主键吗?你也有可能感兴趣的分布和排序键。
  • 链接@Yankee 中未标记正确答案。我访问过那个链接,但它没有回答我的问题。当我运行查询 id 时,即使输入正确的表名和模式名,也不会返回我的列

标签: amazon-web-services amazon-redshift


【解决方案1】:

使用 AWS Labs 提供的v_generate_tbl_ddl.sql,您可以使用表级或架构级过滤器。

【讨论】:

    【解决方案2】:

    您可以查询SVV_COLUMNS 表。它包括:

    • 方案名称
    • 表名
    • 列名

    【讨论】:

      【解决方案3】:

      我使用此查询来获取主键列表。可以添加很多附加信息。 Postres 官方文档到 pg_ 表有很大帮助。

      SELECT
          f.attname AS column_name
      FROM
          pg_catalog.pg_namespace n
      JOIN pg_catalog.pg_class c ON
          n.oid = c.relnamespace
      JOIN pg_catalog.pg_attribute f ON
          c.oid = f.attrelid
      JOIN pg_catalog.pg_constraint p ON
          p.conrelid = c.oid
          AND f.attnum = ANY (p.conkey)
      WHERE
          n.nspname = 'schema_name'
          AND c.relkind = 'r'
          AND c.relname = 'table_name'
          AND p.contype = 'p'
          AND f.attnum > 0
      ORDER BY
          f.attnum;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多