Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

263
Vistas
¿Cómo comprobar si existe un valor en el tipo personalizado de enumeración de PosrgreSQL?

En mi base de datos de PostgreSQL, tengo un tipo de enumeración personalizado llamado " vegetables_type ". Contiene valores ('carrot', 'potato', 'tomato') . Mi tarea es agregar un nuevo valor a este tipo. Estoy buscando una declaración SQL para verificar si este nuevo valor ya existe en este tipo y, si no, agregue este valor, si existe, no haga nada.

He encontrado SELECT unnest(enum_range(NULL::vegetables_type)); declaración. Pero no puedo encontrar cómo operar en este resultado: no es posible aplicar WHERE , IN , ANY operación.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Mueva la llamada a unnest() a la cláusula FROM, luego puede usar la salida como cualquier otra tabla:

 SELECT * FROM unnest(enum_range(NULL::vegetables_type)) as t(name) WHERE name::text = 'carrot'

Para probar si existe un valor, puede usar, por ejemplo:

 select exists (select * FROM unnest(enum_range(NULL::vegetables_type)) as t(name) WHERE t.name::text = 'new_item')

Lo anterior devolverá true si new_item ya es miembro de la enumeración.


Pero no necesita una declaración tan complicada para empezar. Simplemente puede usar if not exists como parte de la instrucción ALTER:

 alter type vegetables_type add value if not exists 'new_item';
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda