Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1874 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MySQL : verrouiller un enregistrement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MySQL : verrouiller un enregistrement

n°1454992
mv1
Posté le 10-10-2006 à 17:08:33  profilanswer
 

Bonjour,
 
Je souhaite verrouiller un enregistrement dans une table quand je le charge, pour que personne d'autre que moi ne puisse le modifier/supprimer tant que je ne l'ai pas libéré. Comment dois-je m'y prendre ?
 
Je n'ai trouvé que "LOCK TABLES", mais ça semble bloquer toute la table, alors que je ne veux verrouiller qu'un seul enregistrement.
 
Merci !!! :jap:

mood
Publicité
Posté le 10-10-2006 à 17:08:33  profilanswer
 

n°1455007
mv1
Posté le 10-10-2006 à 17:17:47  profilanswer
 

Désolé pour la pollution : je viens de trouver !!! :$
 
SELECT ....... FOR UPDATE
 
En espérant que ça puisse servir à quelqu'un !!!

n°1837124
snike
Posté le 12-01-2009 à 22:53:09  profilanswer
 

Merci moi ça m'interesse.
 
Mais pour l'utiliser j'ai un doute :
 
Soit ma table employé sur la quelle je voudrais modifier la personne id=12, mais pendant la modification je voudrais bloquer cet enregistrement pour éviter qu'un autre utilisateur vienne le modifier.
Je fais comment pour le bloquer ? blocage en lecture, en écriture ou les deux ?
 
Que ce passe t-il si un autre utilisateur voudrait le modifier en meme temps ?  
Faut-il faire une boucle jusqu'a ce que je termine ma modification et que je laisse l'enregistrement libre ? -> Comment ?
 
Enfin comment débloquer mon enregistrement ?
 
D'avance merci


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°1837233
omega2
Posté le 13-01-2009 à 11:24:37  profilanswer
 

A lire : l'explication sur le système de verrou avec les tables INNODB : (en anglais) (en français) et tout particulièrement le récapitulatif des différentes situations où un verrou est posé par mysql sur les tables INNODB (en anglais) (en français) et le fonctionnement des verrous en écriture sur les tables INNODB (en anglais) (en français)
 
A noter qu'avec MYSQL < 6.x, seules les tables INNODB disposent d'un verrou d'index (et non pas de ligne) Les autres types de tables ne proposent que le verrou de table entière.

n°1837589
snike
Posté le 13-01-2009 à 21:17:19  profilanswer
 

Ce système permet de bloqué incrémentation d'un index ? ou n'importe quel index de ma table ?

n°1837625
Taz
bisounours-codeur
Posté le 13-01-2009 à 22:55:32  profilanswer
 

Est-ce que ça serait pas plus simple de créer à la volée une séquence chaque mois s'il elle n'existe pas déjà ?

n°1837653
omega2
Posté le 14-01-2009 à 00:25:04  profilanswer
 

Pour le moment, je n'ai pas bien compris l'impact des verrous innodb quand on met un verrou avec une connexion et qu'on insère des données avec des données avant d'avoir enlevé le verrou. je n'ai pas assez testé ce scénario là.
 
Par contre, comme expliqué dans la documentation, le verrou innodb verrouille toutes les lignes indiqué dans l'index utilisé pour la requête. Il peut donc verrouiller plus de lignes que nécessaire.
 
Par exemple si tu fais comme requête "select * from matable where col1=10 et col2<5" et que le seul index de la table porte sur col1 alors toutes les lignes dont col1 seront verrouillé même celles dont la valeur de col2 est supérieure à 5.
Si le verrou était de type "verrou de ligne", seule les lignes retourné à la fin de la requête auraient étaient verrouillé.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MySQL : verrouiller un enregistrement

 

Sujets relatifs
[Mysql] Operation entre resultat d'une requete DANS une requete[MySQL] Decrypter les donnees d'un blob dans une procedure
[Php & MySQL] Problème pour création de tables[Résolu] Enregistrement d'animation
Mysql Without installer (unzip in C:\)Attaquer Base MySQL en C#
Rrreur Requete Mysql Par PHPparcourir, Stocker image ds bd mysql et l'afficher !!
[PHP/Mysql] Problème avec 2 connexions simultanées 
Plus de sujets relatifs à : MySQL : verrouiller un enregistrement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR