2014-09-17 9 views
11

Ich fand, wie Sie den Wert TYPE hinzufügen. Aber wie kann ich den Wert daraus entfernen?
Zum Beispiel habe ich TYPE mit enum Werte ('A','B','C'). Wie zu entfernen 'C'?So ändern Sie den Typ und entfernen Sie den Wert in Postgresql

+0

Wenn Sie tun müssen, dass ein 'enum' ist höchstwahrscheinlich die falsche Wahl an erster Stelle. Verwenden Sie eine zweite Tabelle und einen Fremdschlüssel zwischen den beiden Tabellen –

+1

Mögliches Duplikat von [Wie lösche ich einen Aufzählungstyp in Postgres?] (Http://stackoverflow.com/questions/25811017/how-to-delete-an-enum- Typ-in-Postgres) – Kev

Antwort

21

Wert zu entfernen ('val1') von ENUM ('enum_test') können Sie:

DELETE FROM pg_enum 
WHERE enumlabel = 'val1' 
AND enumtypid = (
    SELECT oid FROM pg_type WHERE typname = 'enum_test' 
) 
+0

Das funktioniert wie ein Charme! Danke –

+0

Sehr ordentlich und kurz, daher viel weniger fehleranfällig. Danke vielmals ! – cgte