Maison >base de données >tutoriel mysql >Comment implémenter le verrouillage pessimiste dans MySQL ?

Comment implémenter le verrouillage pessimiste dans MySQL ?

coldplay.xixi
coldplay.xixioriginal
2020-06-29 15:25:226402parcourir

Méthode de verrouillage pessimiste MySQL : 1. Utilisez d'abord [select ... for update] pour verrouiller, et une fois l'opération terminée, utilisez commit pour libérer le verrou, puis le moteur innodb passe par défaut au niveau de la ligne ; lock ; finalement, aucune donnée ne peut être trouvée, mais ne verrouillez pas la table.

Comment implémenter le verrouillage pessimiste dans MySQL ?

Méthode de verrouillage pessimiste MySQL :

1. Démarrer la transaction

begin;/begin work;/start transaction; (三者选一就可以)

2. informations sur le produit

select status from table where id=1 for update;

3. Générer une commande basée sur les informations sur le produit

insert into table111 (id,goods_id) values (null,1);

4 Modifier le statut du produit à 2

update table set status=2 where id=1;

5. Soumettre la transaction

commit;/commit work; (任选一种释放锁)

Résumé :

1. Implémentez le verrouillage pessimiste en utilisant select... pour la mise à jour pour verrouiller, et utilisez commit pour libérer le verrou une fois l'opération terminée

2. Quand ; en utilisant le moteur innodb, le verrouillage par défaut au niveau de la ligne, lorsqu'il y a un champ clair, une ligne sera verrouillée, s'il n'y a pas de condition ou de condition de requête

Lorsque le champ n'est pas clair, la table entière sera verrouillée ; être verrouillé, et lorsque la condition est une plage, la table entière sera verrouillée

3. Lorsqu'aucune donnée ne peut être trouvée, la table ne sera pas verrouillée ;

Recommandations d'apprentissage associées : Tutoriel vidéo MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn