我正在使用PSQL,并试图创建一个列REQ_TYPE和RESP_STATUS列的表。而且我已经决定使用ENUM来避免表中的无效条目。我们可以在PSQL的INTEGER列创建ENUM吗?
我已经使用此查询为REQ_TYPE成功创建ENUM。
CREATE TYPE RequestType AS ENUM('GET','POST','PUT','DELETE','PATCH');
但对于RESP_STATUS,当我试图下面的查询,
CREATE TYPE ResponseStatus AS ENUM(200,201,202,204,301,302,304,400,401,403,404,405,413,415,429,500);
我
ERROR: syntax error at or near "200"
我敢肯定,
CREATE TYPE ResponseStatus AS ENUM('200','201','202');
将解决响应我的问题。但我只想将RESP_STATUS保持为INTEGER。
我可以在INTEGER上创建ENUM吗?如果是,如何?
在许多语言中,在一个枚举的条目有一个标签和值;我怀疑这是OP所期待的。例如在C语言中,你可以编写'enum STATUS {OK = 200,NOT_FOUND = 404}'等等。或者,他们正在考虑更接近“域”的东西。然而,我同意你的结论,在这种情况下外键更合适。 – IMSoP