Я использую PSQL, и я пытаюсь создать таблицу с столбцами REQ_TYPE и RESP_STATUS. И я решил пойти с ENUM, чтобы избежать недопустимых записей в таблице.Можем ли мы создать ENUM на столбце INTEGER в PSQL?
Я использовал этот запрос для успешного создания ENUM для REQ_TYPE.
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.
Могу ли я создать ENUM на INTEGER? Если да, то как?
Во многих языках, записи в перечислении имеют как метку и значение ; Я подозреваю, что это то, чего ожидал ОП. Например, в C вы можете написать 'enum STATUS {OK = 200, NOT_FOUND = 404}' и т. Д. В качестве альтернативы они думают о чем-то ближе к «домену». Однако я согласен с вашим заключением в том, что внешний ключ в этом случае более уместен. – IMSoP