Chapitre 20. Effectuer des transactions
Cet ouvrage a été traduit à l'aide de l'IA. Tes réactions et tes commentaires sont les bienvenus : translation-feedback@oreilly.com
20.0 Introduction
Le serveur MySQL peut gérer plusieurs clients en même temps car il est multithreadé. Pour gérer les conflits entre les clients, le serveur effectue les verrouillages nécessaires pour que deux clients ne puissent pas modifier les mêmes données en même temps. Cependant, lorsque le serveur exécute des instructions SQL, il est très possible que les instructions successives reçues d'un client donné soient entrelacées avec des instructions d'autres clients. Si un client exécute plusieurs instructions qui dépendent les unes des autres, le fait que d'autres clients puissent mettre à jour des tables entre ces instructions peut entraîner des difficultés.
Les échecs de déclaration peuvent également être problématiques, si une opération à plusieurs déclarations ne s'exécute pas jusqu'au bout. Suppose qu'une table flight contienne des informations sur les horaires des vols des compagnies aériennes et que tu veuilles mettre à jour la ligne du vol 578 en choisissant un pilote parmi ceux qui sont disponibles. Tu pourrais le faire en utilisant trois instructions comme suit :
SET@p_val=(SELECTpilot_idFROMpilotWHEREavailable='yes'LIMIT1);UPDATEpilotSETavailable='no'WHEREpilot_id=@p_val;UPDATEflightSETpilot_id=@p_valWHEREflight_id=578;
La première déclaration choisit un pilote disponible, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access