Maison > Questions et réponses > le corps du texte
A et B accèdent à un ensemble de données sur la même page en même temps. A a modifié l'une des données de B n'a pas été actualisée, donc les informations que B voit sont avant que A ne la modifie à ce moment-là. doit modifier cette donnée . Comment puis-je rappeler à B que ces données ont été modifiées.
J'ai vu un moyen de connaître les données en fonction de l'heure de la dernière modification avant de modifier les données (sélectionnez * from xxx où updatetime = xxx et id= xxx). S'il est introuvable, cela signifie qu'il a été modifié. est trouvé, cela signifie qu'il a été modifié.Je voudrais demander s'il existe une meilleure façon ?
typecho2017-07-07 10:37:07
Je me souviens que le verrouillage optimiste en veille prolongée est implémenté à l'aide du champ du numéro de version. Après chaque mise à jour réussie, la valeur du champ du numéro de version est incrémentée de 1.
Avant la mise à jour, vérifiez d'abord si le numéro de version dans la base de données et la version. Les numéros enregistrés dans la page sont les mêmes, si le numéro de version devient plus grand, l'utilisateur est informé que d'autres utilisateurs ont modifié les données lors de l'édition.
Bien sûr, vous pouvez également utiliser le verrouillage pessimiste. Lorsque vous entrez dans la page, utilisez select... for update pour verrouiller l'enregistrement. À ce stade, les autres utilisateurs ne peuvent pas modifier l'enregistrement verrouillé en même temps.
伊谢尔伦2017-07-07 10:37:07
Je vais faire ceci : ajoutez un champ, edit_num, +1 pour chaque modification, et comparez-le lorsque B doit être modifié.
给我你的怀抱2017-07-07 10:37:07
Un mécanisme de verrouillage optimiste est implémenté en ajoutant un champ de version aux données
大家讲道理2017-07-07 10:37:07
Ajoutez un champ à la table de donnéesupdate_at
类型为TIMESATMP
,默认值为CURRENT_TIMESTAMP
, pas besoin de changer les autres
Chaque fois que les données sont mises à jour, la valeur sera mise à jour automatiquement
女神的闺蜜爱上我2017-07-07 10:37:07
Ajoutez un champ de version à ces données. Le numéro de version commence à 0 par défaut. Il s'incrémentera automatiquement s'il n'est pas modifié. Vérifiez simplement si cette version est cohérente avec la version dans la base de données à chaque fois qu'elle est soumise.