如何在Redshift中创建枚举?

时间:2018-04-02 10:45:53

标签: sql enums amazon-redshift

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

CREATE TYPE status AS ENUM ('Yes', 'No');

错误是:

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

我使用的版本是:

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

无法确定该版本是否支持查询错误?

1 个答案:

答案 0 :(得分:5)

正如Redshift documentation中所述,Redshift不支持枚举类型。

不幸的是,Redshift并不支持我想到的两种解决方法:检查约束和外键约束(值在参考表中)。

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