Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

184
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda