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

PostgreSQL枚举类型元素旁的+符号有什么含义?

PostgreSQL枚举类型中元素后+符号的含义

那个+符号没有任何业务层面的特殊含义,它只是psql命令行客户端的格式化输出标记,用来表示当前行的字段内容被换行拆分,下一行的内容属于同一个字段的延续。

看你给出的第一个查询结果:

Schema |       Name        |   Internal name   | Size | Elements |  Owner   | Access privileges | Description
--------+-------------------+-------------------+------+----------+----------+-------------------+-------------
 public | medical_code_type | medical_code_type | 4    | cpt     +| postgres |                   |
        |                   |                   |      | icd     +|          |                   |
        |                   |                   |      | hcpcs    |          |                   |

这里Elements字段包含三个枚举值,psql为了让表格排版更清晰,把这个字段的内容拆成了多行显示。前两行末尾的+就是在告诉你:“这个字段的内容还没说完,下一行的内容是同一个Elements字段的一部分”,最后一行是该字段内容的结尾,所以没有+。

当你执行ALTER TYPE medical_code_type ADD VALUE 'icd-10-cm'后,Elements字段现在有四个值,psql同样做了换行拆分,前三个值所在的行末尾带+,新添加的icd-10-cm是字段的最后一部分,所以不带+:

Schema |       Name        |   Internal name   | Size | Elements  |  Owner   | Access privileges | Description
--------+-------------------+-------------------+------+-----------+----------+-------------------+-------------
 public | medical_code_type | medical_code_type | 4    | cpt      +| postgres |                   |
        |                   |                   |      | icd      +|          |                   |
        |                   |                   |      | hcpcs    +|          |                   |
        |                   |                   |      | icd-10-cm |          |                   |
(1 row)

如果要验证这一点,你可以用更直接的方式查询枚举值:

SELECT unnest(enum_range(NULL::medical_code_type));

这个查询会把每个枚举值单独显示为一行,结果里不会有任何+符号,这也能佐证+只是psql的输出格式标记,和枚举类型本身的定义、行为没有关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 04:26:00