Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi utiliser SELECT FOR UPDATE ?

SELECT ... FOR UPDATE verrouillera l'enregistrement avec un verrou en écriture (exclusif) jusqu'à ce que la transaction soit terminée (validée ou annulée).

Pour sélectionner un enregistrement et vous assurer qu'il n'est pas modifié jusqu'à ce que vous le mettiez à jour, vous pouvez démarrer une transaction, sélectionnez l'enregistrement en utilisant SELECT ... FOR UPDATE , effectuez un traitement rapide, mettez à jour l'enregistrement, puis validez (ou annulez) la transaction.

Si vous utilisez SELECT ... FOR UPDATE en dehors d'une transaction (autocommit ON), alors le verrou sera toujours immédiatement libéré, alors assurez-vous d'utiliser une transaction pour conserver le verrou.

Pour des raisons de performances, ne gardez pas les transactions ouvertes très longtemps, la mise à jour doit donc être effectuée immédiatement.