SELECT ... FOR UPDATE
bloqueará o registro com um bloqueio de gravação (exclusivo) até que a transação seja concluída (confirmada ou revertida). Para selecionar um registro e garantir que ele não seja modificado até que você o atualize, você pode iniciar uma transação, selecionar o registro usando
SELECT ... FOR UPDATE
, faça algum processamento rápido, atualize o registro e confirme (ou reverta) a transação. Se você usar
SELECT ... FOR UPDATE
fora de uma transação (autocommit ON), o bloqueio ainda será liberado imediatamente, portanto, certifique-se de usar uma transação para manter o bloqueio. Para desempenho, não mantenha transações abertas por muito tempo, então a atualização deve ser feita imediatamente.