【问题标题】:POSTGRESQL: How to get all possible values for column with type enum array [duplicate]POSTGRESQL:如何获取类型为枚举数组的列的所有可能值[重复]
【发布时间】:2021-11-27 12:38:02
【问题描述】:

我一直在尝试使用 SQL 请求在 Postgresql 中获取类型为枚举数组 (ENUM[]) 的列的所有可能值。

使用表 information_schema.columns 中的字段 data_type 的常用方法不起作用,因为它只返回 ARRAY

【问题讨论】:

    标签: arrays postgresql enums


    【解决方案1】:

    以下工作:

    SELECT enumlabel
    FROM pg_enum
             INNER JOIN pg_type ON enumtypid = typelem
             INNER JOIN information_schema.columns ON typname = udt_name
             INNER JOIN pg_namespace ON pg_namespace.oid = typnamespace
    WHERE table_name = 'TABLE_NAME'
      AND column_name = 'COLUMN_NAME'
      AND nspname = 'public'
    );
    

    【讨论】:

      【解决方案2】:

      使用psql,您可以简单地使用\dT+

      \dT+ t_enum 
                                             List of data types
       Schema  │  Name  │ Internal name │ Size │ Elements │  Owner  │ Access privileges │ Description 
      ═════════╪════════╪═══════════════╪══════╪══════════╪═════════╪═══════════════════╪═════════════
       laurenz │ t_enum │ t_enum        │ 4    │ one     ↵│ laurenz │                   │ 
               │        │               │      │ two     ↵│         │                   │ 
               │        │               │      │ three    │         │                   │ 
      (1 row)
      

      【讨论】:

      • 它确实回答了这个问题,但我正在寻找一个 SQL 请求。我编辑了这个问题。感谢您的回答!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多