hasard, bien entendu ! Aussi, évitez de travailler avec ce niveau d'isolation.
Annulez la modification de données réalisée par la session 1 et terminez la transaction de la seconde session.
SERIALIZABLE
Ce niveau d'isolation se comporte comme REPEATABLE READ, sauf que lorsque le mode autocommit est désactivé, tous les
SELECT simples sont implicitement convertis en SELECT ... LOCK IN SHARE MODE.
En résumé
Les verrous permettent de restreindre, voire interdire l'accès, à une partie des données.
Les verrous de table peuvent s'utiliser sur des tables transactionnelles et non-transactionnelles, contrairement aux
verrous de ligne qui ne sont disponibles que pour des tables transactionnelles.
Les verrous de lecture (tables) et partagés (lignes) permettent aux autres sessions de lire les données verrouillées, mais
pas de les modifier. Les verrous d'écriture (tables) et exclusif (lignes) par contre, ne permettent aux autres sessions ni
de lire, ni de modifier les données verrouillées.
Les verrous de ligne s'utilisent avec les transactions, et dépendent des index.
Les requêtes de suppression, modification et insertion posent automatiquement un verrou de ligne exclusif de clé
suivante sur les lignes concernées par la requête. Les requêtes de sélection par contre, ne posent pas de verrou par
défaut, il faut en poser un explicitement.
Le comportement par défaut des verrous de ligne est défini par le niveau d'isolation des transactions, qui est modifiable.
Partie 5 : Sécuriser et automatiser ses actions
254/414
www.openclassrooms.com
Précédent

- 254/413

Suivant