Locker enregistrement table MySql

Itachi37
Invité n'ayant pas de compte PHPfrance

10 juil. 2009, 08:12

Bonjour,

Est-il possible en MySql (version 5) de locker un enregistrement d'une table au format MyIsam.
Je m'explique :

- Un utilisateur se connecte sur l'application et recherche une information pour la mettre à jour.
- Un autre utilisateur se connecte sur l'application et recherche la même information. Il ne doit pas pouvoir y accèder, une personne travaille déjà sur cet enregistrement.

Comment faire ?

Merci pour l'aide que vous pourrez m'apporter.
Cordialement,

ViPHP
ViPHP | 1136 Messages

10 juil. 2009, 09:53

Salut ,

bloquer une table me semble pas être une bonne solution , celà risque d'être désastreux pour tes perf .

Je conseillerais plutôt d'utiliser ce que l'on nomme un mutex , au niveau de ton code php , qui te permet d'être certains qu'une seule personne travail en écriture , et les autres , en lecture seule ( c'est le même principe pour les wiki ).

Simple à mettre en place et efficace . :)

Good luck ,

Ch.

ViPHP
ViPHP | 2291 Messages

10 juil. 2009, 15:52

Bonjour,

Est-il possible en MySql (version 5) de locker un enregistrement d'une table au format MyIsam.
Je m'explique :

- Un utilisateur se connecte sur l'application et recherche une information pour la mettre à jour.
- Un autre utilisateur se connecte sur l'application et recherche la même information. Il ne doit pas pouvoir y accèder, une personne travaille déjà sur cet enregistrement.

Comment faire ?

Merci pour l'aide que vous pourrez m'apporter.
Cordialement,

Salut,

Avec des TABLES MyISAM tu dois faire appel au verrouillage locking, par contre avec des TABLES InnoDB LOCK

Les différents loctypes

:arrow: READ => en lecture uniquement aucune modification possible.

:arrow: READ LOCAL => Comme READ, mais en plus de nouveau INSERT reste possible tant que ceux-ci ne modifie pas des enregistrement existant.

:arrow: WRITE => l'utilisateur actuel peut lire et modifier la TABLE et uniquement lui.

etc la doc


Cela dis je suivrais les conseils de stopher
bloquer une table me semble pas être une bonne solution
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Itachi37
Invité n'ayant pas de compte PHPfrance

13 juil. 2009, 15:13

Merci pour vos réponses.
Je ne souhaite pas "locker" une table entière, mais uniquement un "enregistrement" d'une table.
Mais je vais suivre vos conseils et me pencher sur les "mutex" que je ne connais pas.

Merci pour le conseil.

@+