Devi aggiungere un indice su id
colonna per assicurarti di ottenere un blocco a livello di riga. SELECT ... FOR UPDATE
blocca tutte le righe che vengono lette per eseguire la query, non solo le righe effettivamente selezionate. Senza un indice, deve eseguire una scansione completa della tabella, quindi ogni riga è bloccata di conseguenza.
Con un indice, inserisce semplicemente un blocco in quella voce di indice, non deve leggere altre righe, quindi nessun'altra riga sarà bloccata.