如何在Redshift中创建枚举?

Nav*_*dav 2 sql enums amazon-redshift

我想在redshift上创建一个枚举类型,但不能。

CREATE TYPE status AS ENUM ('Yes', 'No');
Run Code Online (Sandbox Code Playgroud)

错误是:

An error occurred when executing the SQL command:
CREATE TYPE status AS ENUM ('Yes', 'No')

ERROR: syntax error at or near "ENUM"
  Position: 23

CREATE TYPE status AS ENUM ('Yes', 'No')
                  .    ^
1 statement failed
Run Code Online (Sandbox Code Playgroud)

我使用的版本是:

PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.1885
Run Code Online (Sandbox Code Playgroud)

无法确定查询是否错误或此版本不支持?

Gor*_*off 6

如Redshift 文档中所述,Redshift不支持枚举类型。

不幸的是,Redshift不支持我想到的两个变通方法:检查约束和外键约束(这些值在参考表中)。

我的建议是为该类型创建一个引用表并使用外键引用。即使Redshift没有强制执行约束,但至少意图是明确的。