web-dev-qa-db-fra.com

Comment modifier le type et supprimer la valeur dans postgresql

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'?

13
Alex

Je viens de répondre à cette question par une autre question, mais ce n’est pas tout à fait un doublon.

Voir: Comment supprimer un type enum dans postgres?

11
Craig Ringer

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'
)
27
snaiffer

"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.

0
leszy77