Что такое NOWAIT?

Middle
299 просмотров
AFK Offer AI

NOWAIT — модификатор FOR UPDATE, который сразу возвращает ошибку, если строка заблокирована, вместо ожидания. SELECT * FROM accounts WHERE id = 1 FOR UPDATE NOWAIT — если кто-то уже заблокировал эту строку, получишь ERROR: could not obtain lock. Полезно когда не хочешь висеть и ждать: лучше вернуть ошибку клиенту и попросить повторить. В Go ловишь pgconn.PgError с кодом 55P03 (lock_not_available). Альтернатива SKIP LOCKED, но SKIP LOCKED пропускает, а NOWAIT ошибается.

Следующий вопрос

Как реализовать timeout для операции?