Ich verwende PSQL und ich versuche, eine Tabelle mit den Spalten REQ_TYPE und RESP_STATUS zu erstellen. Und ich habe mich entschieden, mit ENUM zu gehen, um ungültige Einträge in der Tabelle zu vermeiden.Können wir ENUM in der Spalte INTEGER in PSQL erstellen?
Ich habe diese Abfrage verwendet, um ENUM für REQ_TYPE erfolgreich zu erstellen.
CREATE TYPE RequestType AS ENUM('GET','POST','PUT','DELETE','PATCH');
Aber für RESP_STATUS, wenn ich die folgende Abfrage versucht,
CREATE TYPE ResponseStatus AS ENUM(200,201,202,204,301,302,304,400,401,403,404,405,413,415,429,500);
I
ERROR: syntax error at or near "200"
die Antwort bekam, dass ich bin sicher, dass
CREATE TYPE ResponseStatus AS ENUM('200','201','202');
lösen würde mein Problem. Aber ich möchte RESP_STATUS nur als INTEGER behalten.
Kann ich ENUM auf INTEGER erstellen? Wenn ja, wie?
In vielen Sprachen, Einträge in einer Enum haben beide ein Label und einen Wert ; Ich vermute, dass dies das ist, was der OP erwartet hat. Zum Beispiel könnte man in C »enum STATUS {OK = 200, NOT_FOUND = 404}« schreiben usw. Alternativ denken sie an etwas, das näher an einer "Domäne" liegt. Ich stimme Ihrer Schlussfolgerung zu, dass ein Fremdschlüssel in diesem Fall besser geeignet ist. – IMSoP