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

241
Vistas
Postgres: restricción única en el rango de enteros

Dados dos enteros, inicio y fin, y una clave externa, ¿cómo defino una restricción unique en el intervalo inicio: final inclusive, y la clave externa?

Dado que tengo las siguientes entradas en mi tabla:

 +-------+-----+--------------------------------------+ | start | end | foreign_key | +-------+-----+--------------------------------------+ | 10 | 20 | 04ef8258-917c-46d6-8db3-9c704d3f4fbd | +-------+-----+--------------------------------------+ | 40 | 60 | 04ef8258-917c-46d6-8db3-9c704d3f4fbd | +-------+-----+--------------------------------------+

Entonces, las siguientes inserciones deberían fallar:

 +-------+-----+--------------------------------------+ | start | end | foreign_key | +-------+-----+--------------------------------------+ | 30 | 50 | 04ef8258-917c-46d6-8db3-9c704d3f4fbd | +-------+-----+--------------------------------------+ | 12 | 18 | 04ef8258-917c-46d6-8db3-9c704d3f4fbd | +-------+-----+--------------------------------------+

Lo que he intentado hasta ahora:

 alter table some_table add constraint unique_interval_to_foreign_key_constraint unique (start, end, foreign_key)

Esto no funciona ya que solo define la restricción única en puntos discretos y la clave externa, y no el rango.

Cualquier ayuda sería apreciada.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Agregar respuesta para completar:

 CREATE EXTENSION btree_gist; ALTER TABLE some_table ADD CONSTRAINT unique_interval_to_foreign_key_constraint EXCLUDE USING gist (foreign_key WITH =, int4range(start, end, '[]') WITH && );
over 4 years ago · Santiago Trujillo 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