我喜欢我可以创建new enum types in PostgreSQL。但是如果我想要一个列值,它是一组枚举值,该怎么办。我需要用整型列类型和按位运算符手动实现它吗?还是有办法继续按名称使用枚举?

CREATE TYPE foo AS ENUM ('none', 'loud', 'bright', 'cheap')
CREATE TABLE t (
    id serial,
    properties [set of foo?]
)
...
SELECT * FROM t;
1      loud
2      loud, cheap
3      bright
4      none
...

最佳答案

可以使用数组:

CREATE TYPE foo AS ENUM ('none', 'loud', 'bright', 'cheap');
CREATE TABLE t (
    id serial,
    properties foo[]
);

09-28 10:00