私はPSQLを使用していますが、REQ_TYPE列とRESP_STATUS列を持つテーブルを作成しようとしています。そして、私はテーブルの無効なエントリを避けるためにENUMに行くことに決めました。PSQLのINTEGER列にENUMを作成できますか?
このクエリを使用してREQ_TYPEのENUMを正常に作成しました。
CREATE TYPE RequestType AS ENUM('GET','POST','PUT','DELETE','PATCH');
しかし、私は以下のクエリ、
CREATE TYPE ResponseStatus AS ENUM(200,201,202,204,301,302,304,400,401,403,404,405,413,415,429,500);
をしようとしたときRESP_STATUSのために、私は私が
CREATE TYPE ResponseStatus AS ENUM('200','201','202');
が解決するだろうことを確信している応答
ERROR: syntax error at or near "200"
を得ました私の問題。しかし、私はRESP_STATUSをINTEGERとして保持したいだけです。
INTEGERでENUMを作成できますか?はいの場合、どうですか?
を逃している(より簡単に追加することが、列挙型のエントリは、ラベルと値の両方を持っています;私はこれがOPが期待していたものだと思う。例えば、Cでは 'enum STATUS {OK = 200、NOT_FOUND = 404}'などと書くことができます。あるいは、 "ドメイン"に近いものを考えています。私はあなたの結論に同意します、しかし、このケースでは外部キーがより適切です。 – IMSoP