Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2007, 17h27   #1
Invité régulier
 
Inscription : avril 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 17
Points : 5
Points : 5
Par défaut verrou sur ligne d'une table

bonjour,

J'ai fais pas mal de recherche sur internet, mais je n'arrive pas à trouver, voilà, j'aimerais savoir comment vérrouiller une ligne d'une table sql pour que lorsque je désire la modifier, personne d'autre puisse y accepter. J'ai utiliser la commande select... FOR UPDATE, mais cela n'a pas l'air de fonctionner. Y a t il une fonction pour savoir si le verrouillage se fait bien. J'utilise mysql avec wamp. Autre problème, je n'arrive pas à utiliser NOWAIT avec FOR UPDATE. Si quelqu'un à une synthaxe. Merci.
egelitros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 19h43   #2
Invité régulier
 
Inscription : avril 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 17
Points : 5
Points : 5
bon, personne peut m'aider? snif, sinon, après d'autres recherches, on parle beaucoup d'un champs auto_increment, quelqu'un peut il me dire à quoi cela sert. Sinon, pour mon vérouillage de ligne, j'ai bien peur de deoivr contourner le problème en rajoutant un champs que je changerais à chaque fois. Mais j'espère qu'il existe une autre solution. J'ai trouvé beaucoup de verrouillage sur des tables, mais pas sur un enregistrement.
egelitros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 08h36   #3
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Deux choses : Le verrouillage par ligne n'est possible que pour innoDb, avec MyIsam c'est uniquement par table. De plus il me semble que les verrous sont basés sur les indexes (la clef primaire je suppose) et que toutes les lignes balayées par la requête sont verouillée, c'est à dire que si la requête ne passe pas par un indexe et fait un scan complet de la table tout son contenu sera verouillé.

auto_increment sert généralement à avoir automatiquement un identifiant pour chaque ligne sans avoir à aller récupérer à la main le numéro suivant (si on veut qu'ils se suivent), ce qui serait pénible et poserait justement des problèmes d'accès concurrent. Ca peut limiter le besoin de poser des verrous.

Sinon pour tester... ben il faut une table, mettre quelques données dedans, lancer deux clients mysql et tanter différentes modifs (même ligne, lignes différentes...) et veillant à ne pas avoir l'autocommit d'activé.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h27.


 
 
 
 
Partenaires

Hébergement Web