Il y a une requête avec un Verrouillage de l'espace utilisé à MySQL/InnoDB :
SELECT id, time, count
FROM table_a
WHERE time
BETWEEN DATE_SUB(NOW(), INTERVAL 24 HOUR)
AND NOW()
FOR UPDATE
Il verrouille le time
et renvoie un enregistrement récent s'il est présent (au cours des dernières 24 heures). Si ce n'est pas le cas, la session possède toujours un verrou sur la durée des dernières 24 heures pour insérer un nouvel enregistrement en toute sécurité.
Est-il possible de faire le même gap lock pendant toute la durée de 24 heures (même s'il n'y a pas d'enregistrements) dans PostgreSQL ?