bonjour, lors d'un update à 12h05 d'un record que j'ai lu et stocké dans mon application à 12h, je voudrais savoir les moyens de contrôler que le row dans la bdd n'a pas été modifié entre temps.
En résumé, pendant mon update, je voudrais contrôler que le timestamp du record que je suis en train d'updater est bien le même que celui que j'ai stocké.
Je suis en php pdo mysql.

Certains sgbd supportent en effet des mises à jour du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
for first row where id = :id
   if row.timestamp différent de :timestamp_stocké_lors_de_la_lecture_un_peu_plus_tot
      quit <-- sortie de la requete sans mise à jour
   endif
   set row.colonne_a_mettre_a_jour = nouvelle_valeur_que_je_veux <- mise à jour
   set row.time_stamp              = new date()
endfor <- commit
Bien entendu je voudrais éviter, dans ma requête, d'utiliser une clause du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 ... and timestamp = :timestamp_stocké_lors_de_la_lecture_un_peu_plus_tot
A la rigueur si après ma requête je peux connaître le timestamp du row avant modif, ça me va car je peux déclencher un rollback. Mais est ce possible d'avoir cette information ?