J'ai trouvé comment ajouter de la valeur à la TYPE
. Mais comment puis-je en retirer de la valeur?
Par exemple, j'ai TYPE
avec enum
valeurs ('A','B','C')
. Comment supprimer 'C'
?
Je viens de répondre à cette question par une autre question, mais ce n’est pas tout à fait un doublon.
Pour supprimer la valeur ('val1') de enum ('enum_test'), vous pouvez utiliser:
DELETE FROM pg_enum
WHERE enumlabel = 'val1'
AND enumtypid = (
SELECT oid FROM pg_type WHERE typname = 'enum_test'
)
"DELETE FROM pg_enum" répond.
Toutefois, il faut savoir que cela peut être dangereux, car si la valeur enum supprimée existe quelque part dans certaines tables de la base de données, la suppression fonctionne toujours sans se plaindre, mais tous les enregistrements avec la valeur supprimée sont corrompus. Par exemple. toute requête SELECT ayant un tel enregistrement dans ses résultats, se bloque.