我想在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
无法确定该版本是否支持查询错误?
答案 0 :(得分:5)
正如Redshift documentation中所述,Redshift不支持枚举类型。
不幸的是,Redshift并不支持我想到的两种解决方法:检查约束和外键约束(值在参考表中)。
我的建议是为类型创建一个引用表并使用外键引用。尽管Redshift没有强制执行约束,但至少意图是明确的。