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

191
Vistas
PostgreSQL Gap lock por SELECCIONAR... PARA ACTUALIZAR

Hay una consulta con Gap Lock utilizada en MySQL/InnoDB:

 SELECT id, time, count FROM table_a WHERE time BETWEEN DATE_SUB(NOW(), INTERVAL 24 HOUR) AND NOW() FOR UPDATE

Bloquea el rango de time y devuelve un registro reciente si está presente (durante las últimas 24 horas). De lo contrario, la sesión aún posee un bloqueo durante las últimas 24 horas para insertar de manera segura un nuevo registro.

¿Es posible hacer el mismo bloqueo de brecha durante las 24 horas completas (incluso si no hay registros) en PostgreSQL?

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

0

La forma de hacerlo en PostgreSQL es usar el nivel de aislamiento SERIALIZABLE para todas las transacciones.

Entonces no necesita FOR UPDATE en absoluto. PostgreSQL no evitará que se inserten filas en el espacio, pero si dos transacciones leen y escriben valores en el mismo espacio simultáneamente, una de ellas obtendrá un error de serialización y tendrá que rehacer la transacción (en el segundo intento, lo hará). encontrar el hueco no vacío).

El concepto en el trabajo aquí es la serialización: es aceptable si alguien más se inserta en el espacio sin leer (esa transacción es lógicamente posterior a la que tiene su SELECT ). Pero si dos transacciones encuentran el espacio vacío y luego insertan algo, eso crearía una anomalía que SERIALIZABLE .

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