简体   繁体   English

红移列名称

[英]Redshift column names

I'm new to redshift.我是红移的新手。 I have some tables in 'abc' schema whose column names and primary key information needs to be extracted.我在“abc”架构中有一些表需要提取其列名和主键信息。 Can someone guide.有人可以指导吗。 Assume schema name is 'abc' and table name is 'xyz' whose columns are required to be listed in a single row.假设架构名称为“abc”,表名称为“xyz”,其列需要列在一行中。

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

You can query the SVV_COLUMNS table. 您可以查询SVV_COLUMNS表。 It includes: 这包括:

  • Scheme Name 方案名称
  • Table Name 表名
  • Column Name 栏名

I used this query to get a list of primary keys.我使用此查询来获取主键列表。 A lot of additional info can be added.可以添加很多附加信息。 Postres official documentation to pg_ tables helps a lot. pg_ 表的 Postres 官方文档很有帮助。

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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM