PostgreSQL创建整数类型枚举报错,为何无法创建?
PostgreSQL枚举类型创建报错问题解答
你执行的创建枚举语句:
create type oddNum as enum (1,3,5,7)
触发了语法错误:
ERROR: syntax error at or near "1" LINE 1: create type oddNum as enum (1,3,5,7)
问题根源在于PostgreSQL的枚举值必须以字符串字面量的形式定义,哪怕你想表示数字,也得用单引号包裹。虽然官方文档没直接说枚举仅限varchar类型,但枚举的底层实现基于字符串,所有枚举值都要求是字符串格式。
修正后的正确语句:
create type oddNum as enum ('1','3','5','7');
如果后续需要将这些枚举值当作数字使用,可在查询时做类型转换,示例:
select '1'::oddNum::integer;
内容的提问来源于stack exchange,提问作者Yashasvi.G
相关产品推荐
相关产品推荐

