Ich versuche, einen Wert aus einem vorhandenen postgresql Enum-Datentyp zu entfernen. Meine Nachforschungen sagen mir, dass ich den Enum-Datentyp mit Ausnahme des Werts, den ich nicht möchte, neu erstellen muss. Meine Idee um dies zu erreichen ist es, alle Werte aus dem vorhandenen Datentyp erhalten überUnterabfrage Werte auswählen und in Enumeration in PostgreSQL speichern
select e.enumlabel as enum_value from pg_type t join pg_enum e on t.oid = e.enumtypid
join pg_catalog.pg_namespace n ON n.oid = t.typnamespace where t.typname = 'alert_level' where e.enumlabel is not 'value i want to exclude'
create type alert_type2 as enum ('ABOVE QUERY HERE') ::alert_type
und diese Werte nehmen ich will, und sie irgendwie in einen neuen Datentyp
So legen meine Frage: Ist es möglich, Werte von einer Unterabfrage zu erhalten und einen Enum-Datentyp aus den Abfrageergebnissen zu erstellen? Gibt es einen besseren Weg, dies zu tun?
Ich habe auch so etwas versucht, aber ich kann nicht herausfinden, wie man Werte aus dem Select enum_range ausschließt.
create type alert_type2 as enum (select enum_range(NULL::alert_type)::text)
Vielen Dank mein guter Herr. Funktioniert hervorragend! Können Sie mir auf irgendeine Dokumentation verweisen, die Ihre Antwort erklären könnte? – NoToBagels