Postgresql już jakiś czas temu otrzymał wsparcie dla enum.
CREATE TYPE myenum AS ENUM (
'value1',
'value2',
);
Jak uzyskać wszystkie wartości określone w wyliczeniu za pomocą zapytania?
postgresql
enums
Wienczny
źródło
źródło
Odpowiedzi:
Jeśli chcesz mieć tablicę:
Jeśli chcesz mieć osobny rekord dla każdego elementu w wyliczeniu:
Dodatkowe informacje
To rozwiązanie działa zgodnie z oczekiwaniami, nawet jeśli wyliczenie nie znajduje się w schemacie domyślnym. Na przykład, należy wymienić
myenum
zmyschema.myenum
.Typ danych zwracanych rekordów w powyższym zapytaniu będzie
myenum
. W zależności od tego, co robisz, może być konieczne przesłanie do tekstu. na przykładJeśli chcesz określić nazwę kolumny, możesz dołączyć
AS my_col_name
.Podziękowania dla Justina Ohmsa za wskazanie kilku dodatkowych wskazówek, które włączyłem do mojej odpowiedzi.
źródło
NULL::
?SELECT enum_range(myenum)
? Jakie jest znaczenie castingunull
?Próbować:
źródło
ORDER BY e.enumsortorder
do zapytania. Wyliczone wartości będą najprawdopodobniej nie w kolejności, jeśli nowe wartości zostały wstawione do typu wyliczenia przy użyciuBEFORE
lubAFTER
.To zwróci pojedynczy zestaw wyników kolumny zawierający zawartość wyliczenia „twoje_enum” z kolumną o nazwie „twoja_kolumna” typu tekst.
źródło
Możesz pobrać wszystkie wartości wyliczenia dla wyliczenia przy użyciu następującego zapytania. Zapytanie umożliwia wybranie przestrzeni nazw, w której znajduje się wyliczenie (co jest wymagane, jeśli wyliczenie jest zdefiniowane w wielu przestrzeniach nazw; w przeciwnym razie można pominąć tę część zapytania).
źródło