|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre extrêmement actif
![]() Inscription : juin 2006 Messages : 1 804 ![]() |
Bonjour,
MySql fait-il une mise à jour d'un enregistrement d'une table même si l'update que l'on exécute ne change rien au contenu de la table. Si non (youpi) existe-t-il un code retour permettant de savoir s'il y a eu mise à jour ou pas de la table ? Merci pour votre aide
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose. |
|
|
00
|
|
|
#2 | ||||
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
Citation:
Citation:
Citation:
Citation:
__________________
![]() ![]() ![]() David55 |
||||
|
|
00
|
|
|
#3 |
|
Membre extrêmement actif
![]() Inscription : juin 2006 Messages : 1 804 ![]() |
Comme ce serait dommage.
Je continue de chercher
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose. |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() ![]() Inscription : novembre 2007 Messages : 134 ![]() |
Bonjour,
Un peu étrange votre question, je crois qu'il faudrait nous indiquer plus d'informations pour savoir quelles sont vos raisons profondes de faire cela. En effet, rien ne vous empêche lors de l'update de contrôler la valeur et vérifier si celle ci est différente ou non. Vous pouvez alors par exemple modifier une colonne "date_modification", ce qui vous indiquera qu'il y a eu une modification. Sinon, vous pouvez utiliser un trigger, qui fera ça automatiquement en arrière plan. |
|
|
00
|
|
|
#5 |
|
Membre extrêmement actif
![]() Inscription : juin 2006 Messages : 1 804 ![]() |
Bonjour,
Je gère des logs des requêtes qui ont eu un impact sur la base de données. Hors actuellement que l'utilisateur ai ou non fait une modif sur un formulaire et qu'il clique sur valider au lieu de retour, un update se fait et un enregistrement de la requête exécutée est enregistré dans les logs. Cet enregistrement est inutile et perturbant sur les véritables modifications de la base de données. Donc en sachant s'il y a eu update ou pas, je peux gérer l'enregistrement des logs. Je ne connais pas les triggers. Je vais regarder ça.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose. |
|
|
00
|
|
|
#6 | ||
|
Membre extrêmement actif
![]() Inscription : juin 2006 Messages : 1 804 ![]() |
Après recherche et lecture sur les triggers j'ai l'impression que je doive faire :
Code :
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose. |
||
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() ![]() Inscription : novembre 2007 Messages : 134 ![]() |
Bonjour,
Cela me semble bon pour le trigger mais je me demande pourquoi vous ne gérez pas cela en aval du coté du formulaire, de cette façon vous ne surchargez pas votre serveur de base de données en lui envoyant un ordre inutile. Si c'est un client léger vous devriez même pouvoir faire cela en javascript et ainsi décharger la charge coté client. Bon courage |
|
|
00
|
|
|
#8 | |
|
Membre extrêmement actif
![]() Inscription : juin 2006 Messages : 1 804 ![]() |
Citation:
Cela reviendrait donc à avoir chaque champ du formulaire doublé en hidden, puis une fonction faisant la comparaison de chaque champ hidden avec le champ du formulaire lorsqu'il y a modification d'un champ de formulaire et d'activer un marqueur disant qu'une valeur est modifiée. J'ai bien suivi ?
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose. |
|
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() ![]() Inscription : novembre 2007 Messages : 134 ![]() |
J'imagine qu'il s'agit d'un client léger en html.
Je ne suis pas assez calé pour vous donner un exemple détaillé de script. Cependant, d'abord il serait préférable que le formulaire soit déjà rempli par les valeurs existantes dans vos champs 'input' avec la propriété 'value' (dans le cas d'une modification bien sûr). Ensuite avec l'aide de javascript qui aurait au préalable enregistré les valeurs initiales vous contrôlez que les valeurs des champs changent. Soit vous le faites au moment de la validation du formulaire (bouton valider par ex), soit vous le faites à chaque fois qu'un des champs est modifié (lorsqu'il perd le contrôle), dans ce dernier cas vous désactivez le bouton valider tant qu'un des champs n'est pas modifié. Si vous le faites du coté serveur, soit vous envoyez les valeurs initiales en même temps pour les comparer (dans ce cas des champs cachés feront l'affaire), soit vous refaites une requête select avant l'éventuel update. Juste pour m'assurer, on est bien d'accord que vous faites la requête update seulement s'il y a eu une modification, sinon vous n'avez rien besoin de faire, ni l'update, ni l'enregistrement du log, le serveur de bdd n'est ainsi pas sollicité. Si vous vous orientez vers une solution coté applicatif je vous invite à délester votre message sur le forum approprié (php ou autres). Bon courage |
|
|
00
|
|
|
#10 |
|
Membre extrêmement actif
![]() Inscription : juin 2006 Messages : 1 804 ![]() |
Patic,
On s'est bien compris sur ce que je souhaite faire. Maintenant, que vaut-il mieux charger. - Le serveur de données (MySql) - Le poste client (Javascript) - Le serveur de traitement (PHP)
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose. |
|
|
00
|
|
|
#11 |
|
Membre extrêmement actif
![]() Inscription : juin 2006 Messages : 1 804 ![]() |
Le mieux pour l'intégrité des données est le niveau mysql. Il faut un serveur de données bien dimensionné et tout ira bien.
Merci
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose. |
|
|
00
|
|
|
#12 |
|
Membre confirmé
![]() ![]() Inscription : novembre 2007 Messages : 134 ![]() |
Je n'ai pas assez d'expérience pour donner LA réponse, d'autant qu'il faut à mon avis prendre en compte l'environnement globale de l'application (matériel, nombre de client, etc). Il n'y a pas à proprement parlé de problème d'intégrité ici, le seul problème que j'identifie est s'il y a des accès concurrents. On peut imaginer que le premier client est en cours de modification et qu'un deuxième client arrive est fait une modification plus rapidement, le premier ne verra pas la modification du second ...
|
|
|
00
|
|
|
#13 |
|
Membre extrêmement actif
![]() Inscription : juin 2006 Messages : 1 804 ![]() |
Dans ce cas précis il n'est pas question d'intégrité de données.
Soit, mais il est bon de bien partir dans les développements et je vois trop souvent des lignes de codes pour compenser une architecture et une technologie mal maîtrisée sur la gestion des base de données. De plus je suis sur que quelque soit le script qui fera un update sur une table ayant un trigger, le trigger s'activera. Donc pas d'oublie possible de la part du programmeur.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com